File: country.py

package info (click to toggle)
libloc 0.9.18-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 42,824 kB
  • sloc: ansic: 7,602; python: 2,893; makefile: 511; sh: 39; perl: 13
file content (73 lines) | stat: -rwxr-xr-x 2,526 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#!/usr/bin/python3
###############################################################################
#                                                                             #
# libloc - A library to determine the location of someone on the Internet     #
#                                                                             #
# Copyright (C) 2024 IPFire Development Team <info@ipfire.org>                #
#                                                                             #
# This library is free software; you can redistribute it and/or               #
# modify it under the terms of the GNU Lesser General Public                  #
# License as published by the Free Software Foundation; either                #
# version 2.1 of the License, or (at your option) any later version.          #
#                                                                             #
# This library is distributed in the hope that it will be useful,             #
# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU           #
# Lesser General Public License for more details.                             #
#                                                                             #
###############################################################################

import location
import unittest

class Test(unittest.TestCase):
	def test_properties(self):
		c = location.Country("DE")

		# The code should be DE
		self.assertEqual(c.code, "DE")

		# All other attributes should return None
		self.assertIsNone(c.name)
		self.assertIsNone(c.continent_code)

		# Set a name and read it back
		c.name = "Germany"
		self.assertEqual(c.name, "Germany")

		# Set a continent code and read it back
		c.continent_code = "EU"
		self.assertEqual(c.continent_code, "EU")

	def test_country_cmp(self):
		"""
			Performs some comparison tests
		"""
		c1 = location.Country("DE")
		c2 = location.Country("DE")

		# c1 and c2 should be equal
		self.assertEqual(c1, c2)

		# We cannot compare against strings for example
		self.assertNotEqual(c1, "DE")

		c3 = location.Country("AT")

		# c1 and c3 should not be equal
		self.assertNotEqual(c1, c3)

		# c3 comes before c1 (alphabetically)
		self.assertGreater(c1, c3)
		self.assertLess(c3, c1)

	def test_country_hash(self):
		"""
			Tests if the hash function works
		"""
		c = location.Country("DE")

		self.assertTrue(hash(c))

if __name__ == "__main__":
	unittest.main()