mirror of
				https://github.com/SectorLabs/django-localized-fields.git
				synced 2025-10-31 02:48:56 +03:00 
			
		
		
		
	Move LocalizedValueTest into dedicated file
This commit is contained in:
		
							
								
								
									
										13
									
								
								tests/data.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								tests/data.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | |||||||
|  | from django.conf import settings | ||||||
|  |  | ||||||
|  |  | ||||||
|  | def get_init_values() -> dict: | ||||||
|  |     """Gets a test dictionary containing a key | ||||||
|  |     for every language.""" | ||||||
|  |  | ||||||
|  |     keys = {} | ||||||
|  |  | ||||||
|  |     for lang_code, lang_name in settings.LANGUAGES: | ||||||
|  |         keys[lang_code] = 'value in %s' % lang_name | ||||||
|  |  | ||||||
|  |     return keys | ||||||
| @@ -9,162 +9,7 @@ from localized_fields.fields import LocalizedField | |||||||
| from localized_fields.forms import LocalizedFieldForm | from localized_fields.forms import LocalizedFieldForm | ||||||
| from localized_fields.value import LocalizedValue | from localized_fields.value import LocalizedValue | ||||||
|  |  | ||||||
|  | from .data import get_init_values | ||||||
| def get_init_values() -> dict: |  | ||||||
|     """Gets a test dictionary containing a key |  | ||||||
|     for every language.""" |  | ||||||
|  |  | ||||||
|     keys = {} |  | ||||||
|  |  | ||||||
|     for lang_code, lang_name in settings.LANGUAGES: |  | ||||||
|         keys[lang_code] = 'value in %s' % lang_name |  | ||||||
|  |  | ||||||
|     return keys |  | ||||||
|  |  | ||||||
|  |  | ||||||
| class LocalizedValueTestCase(TestCase): |  | ||||||
|     """Tests the :see:LocalizedValue class.""" |  | ||||||
|  |  | ||||||
|     @staticmethod |  | ||||||
|     def tearDown(): |  | ||||||
|         """Assures that the current language |  | ||||||
|         is set back to the default.""" |  | ||||||
|  |  | ||||||
|         translation.activate(settings.LANGUAGE_CODE) |  | ||||||
|  |  | ||||||
|     @staticmethod |  | ||||||
|     def test_init(): |  | ||||||
|         """Tests whether the __init__ function |  | ||||||
|         of the :see:LocalizedValue class works |  | ||||||
|         as expected.""" |  | ||||||
|  |  | ||||||
|         keys = get_init_values() |  | ||||||
|         value = LocalizedValue(keys) |  | ||||||
|  |  | ||||||
|         for lang_code, _ in settings.LANGUAGES: |  | ||||||
|             assert getattr(value, lang_code, None) == keys[lang_code] |  | ||||||
|  |  | ||||||
|     @staticmethod |  | ||||||
|     def test_init_default_values(): |  | ||||||
|         """Tests wehther the __init__ function |  | ||||||
|         of the :see:LocalizedValue accepts the |  | ||||||
|         default value or an empty dict properly.""" |  | ||||||
|  |  | ||||||
|         value = LocalizedValue() |  | ||||||
|  |  | ||||||
|         for lang_code, _ in settings.LANGUAGES: |  | ||||||
|             assert getattr(value, lang_code) is None |  | ||||||
|  |  | ||||||
|     @staticmethod |  | ||||||
|     def test_get_explicit(): |  | ||||||
|         """Tests whether the the :see:LocalizedValue |  | ||||||
|         class's :see:get function works properly |  | ||||||
|         when specifying an explicit value.""" |  | ||||||
|  |  | ||||||
|         keys = get_init_values() |  | ||||||
|         localized_value = LocalizedValue(keys) |  | ||||||
|  |  | ||||||
|         for language, value in keys.items(): |  | ||||||
|             assert localized_value.get(language) == value |  | ||||||
|  |  | ||||||
|     @staticmethod |  | ||||||
|     def test_get_default_language(): |  | ||||||
|         """Tests whether the :see:LocalizedValue |  | ||||||
|         class's see:get function properly |  | ||||||
|         gets the value in the default language.""" |  | ||||||
|  |  | ||||||
|         keys = get_init_values() |  | ||||||
|         localized_value = LocalizedValue(keys) |  | ||||||
|  |  | ||||||
|         for language, _ in keys.items(): |  | ||||||
|             translation.activate(language) |  | ||||||
|             assert localized_value.get() == keys[settings.LANGUAGE_CODE] |  | ||||||
|  |  | ||||||
|     @staticmethod |  | ||||||
|     def test_set(): |  | ||||||
|         """Tests whether the :see:LocalizedValue |  | ||||||
|         class's see:set function works properly.""" |  | ||||||
|  |  | ||||||
|         localized_value = LocalizedValue() |  | ||||||
|  |  | ||||||
|         for language, value in get_init_values(): |  | ||||||
|             localized_value.set(language, value) |  | ||||||
|             assert localized_value.get(language) == value |  | ||||||
|             assert getattr(localized_value, language) == value |  | ||||||
|  |  | ||||||
|     @staticmethod |  | ||||||
|     def test_str(): |  | ||||||
|         """Tests whether the :see:LocalizedValue |  | ||||||
|         class's __str__ works properly.""" |  | ||||||
|  |  | ||||||
|         keys = get_init_values() |  | ||||||
|         localized_value = LocalizedValue(keys) |  | ||||||
|  |  | ||||||
|         for language, value in keys.items(): |  | ||||||
|             translation.activate(language) |  | ||||||
|             assert str(localized_value) == value |  | ||||||
|  |  | ||||||
|     @staticmethod |  | ||||||
|     def test_eq(): |  | ||||||
|         """Tests whether the __eq__ operator |  | ||||||
|         of :see:LocalizedValue works properly.""" |  | ||||||
|  |  | ||||||
|         a = LocalizedValue({'en': 'a', 'ar': 'b'}) |  | ||||||
|         b = LocalizedValue({'en': 'a', 'ar': 'b'}) |  | ||||||
|  |  | ||||||
|         assert a == b |  | ||||||
|  |  | ||||||
|         b.en = 'b' |  | ||||||
|         assert a != b |  | ||||||
|  |  | ||||||
|     @staticmethod |  | ||||||
|     def test_str_fallback(): |  | ||||||
|         """Tests whether the :see:LocalizedValue |  | ||||||
|         class's __str__'s fallback functionality |  | ||||||
|         works properly.""" |  | ||||||
|  |  | ||||||
|         test_value = 'myvalue' |  | ||||||
|  |  | ||||||
|         localized_value = LocalizedValue({ |  | ||||||
|             settings.LANGUAGE_CODE: test_value |  | ||||||
|         }) |  | ||||||
|  |  | ||||||
|         other_language = settings.LANGUAGES[-1][0] |  | ||||||
|  |  | ||||||
|         # make sure that, by default it returns |  | ||||||
|         # the value in the default language |  | ||||||
|         assert str(localized_value) == test_value |  | ||||||
|  |  | ||||||
|         # make sure that it falls back to the |  | ||||||
|         # primary language when there's no value |  | ||||||
|         # available in the current language |  | ||||||
|         translation.activate(other_language) |  | ||||||
|         assert str(localized_value) == test_value |  | ||||||
|  |  | ||||||
|         # make sure that it's just __str__ falling |  | ||||||
|         # back and that for the other language |  | ||||||
|         # there's no actual value |  | ||||||
|         assert localized_value.get(other_language) != test_value |  | ||||||
|  |  | ||||||
|     @staticmethod |  | ||||||
|     def test_deconstruct(): |  | ||||||
|         """Tests whether the :see:LocalizedValue |  | ||||||
|         class's :see:deconstruct function works properly.""" |  | ||||||
|  |  | ||||||
|         keys = get_init_values() |  | ||||||
|         value = LocalizedValue(keys) |  | ||||||
|  |  | ||||||
|         path, args, kwargs = value.deconstruct() |  | ||||||
|  |  | ||||||
|         assert args[0] == keys |  | ||||||
|  |  | ||||||
|     @staticmethod |  | ||||||
|     def test_construct_string(): |  | ||||||
|         """Tests whether the :see:LocalizedValue's constructor |  | ||||||
|         assumes the primary language when passing a single string.""" |  | ||||||
|  |  | ||||||
|         value = LocalizedValue('beer') |  | ||||||
|         assert value.get(settings.LANGUAGE_CODE) == 'beer' |  | ||||||
|  |  | ||||||
|  |  | ||||||
| class LocalizedFieldTestCase(TestCase): | class LocalizedFieldTestCase(TestCase): | ||||||
|   | |||||||
							
								
								
									
										155
									
								
								tests/test_value.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										155
									
								
								tests/test_value.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,155 @@ | |||||||
|  | import json | ||||||
|  |  | ||||||
|  | from django.conf import settings | ||||||
|  | from django.test import TestCase | ||||||
|  | from django.utils import translation | ||||||
|  |  | ||||||
|  | from localized_fields.value import LocalizedValue | ||||||
|  |  | ||||||
|  | from .data import get_init_values | ||||||
|  |  | ||||||
|  |  | ||||||
|  | class LocalizedValueTestCase(TestCase): | ||||||
|  |     """Tests the :see:LocalizedValue class.""" | ||||||
|  |  | ||||||
|  |     @staticmethod | ||||||
|  |     def tearDown(): | ||||||
|  |         """Assures that the current language | ||||||
|  |         is set back to the default.""" | ||||||
|  |  | ||||||
|  |         translation.activate(settings.LANGUAGE_CODE) | ||||||
|  |  | ||||||
|  |     @staticmethod | ||||||
|  |     def test_init(): | ||||||
|  |         """Tests whether the __init__ function | ||||||
|  |         of the :see:LocalizedValue class works | ||||||
|  |         as expected.""" | ||||||
|  |  | ||||||
|  |         keys = get_init_values() | ||||||
|  |         value = LocalizedValue(keys) | ||||||
|  |  | ||||||
|  |         for lang_code, _ in settings.LANGUAGES: | ||||||
|  |             assert getattr(value, lang_code, None) == keys[lang_code] | ||||||
|  |  | ||||||
|  |     @staticmethod | ||||||
|  |     def test_init_default_values(): | ||||||
|  |         """Tests wehther the __init__ function | ||||||
|  |         of the :see:LocalizedValue accepts the | ||||||
|  |         default value or an empty dict properly.""" | ||||||
|  |  | ||||||
|  |         value = LocalizedValue() | ||||||
|  |  | ||||||
|  |         for lang_code, _ in settings.LANGUAGES: | ||||||
|  |             assert getattr(value, lang_code) is None | ||||||
|  |  | ||||||
|  |     @staticmethod | ||||||
|  |     def test_get_explicit(): | ||||||
|  |         """Tests whether the the :see:LocalizedValue | ||||||
|  |         class's :see:get function works properly | ||||||
|  |         when specifying an explicit value.""" | ||||||
|  |  | ||||||
|  |         keys = get_init_values() | ||||||
|  |         localized_value = LocalizedValue(keys) | ||||||
|  |  | ||||||
|  |         for language, value in keys.items(): | ||||||
|  |             assert localized_value.get(language) == value | ||||||
|  |  | ||||||
|  |     @staticmethod | ||||||
|  |     def test_get_default_language(): | ||||||
|  |         """Tests whether the :see:LocalizedValue | ||||||
|  |         class's see:get function properly | ||||||
|  |         gets the value in the default language.""" | ||||||
|  |  | ||||||
|  |         keys = get_init_values() | ||||||
|  |         localized_value = LocalizedValue(keys) | ||||||
|  |  | ||||||
|  |         for language, _ in keys.items(): | ||||||
|  |             translation.activate(language) | ||||||
|  |             assert localized_value.get() == keys[settings.LANGUAGE_CODE] | ||||||
|  |  | ||||||
|  |     @staticmethod | ||||||
|  |     def test_set(): | ||||||
|  |         """Tests whether the :see:LocalizedValue | ||||||
|  |         class's see:set function works properly.""" | ||||||
|  |  | ||||||
|  |         localized_value = LocalizedValue() | ||||||
|  |  | ||||||
|  |         for language, value in get_init_values(): | ||||||
|  |             localized_value.set(language, value) | ||||||
|  |             assert localized_value.get(language) == value | ||||||
|  |             assert getattr(localized_value, language) == value | ||||||
|  |  | ||||||
|  |     @staticmethod | ||||||
|  |     def test_str(): | ||||||
|  |         """Tests whether the :see:LocalizedValue | ||||||
|  |         class's __str__ works properly.""" | ||||||
|  |  | ||||||
|  |         keys = get_init_values() | ||||||
|  |         localized_value = LocalizedValue(keys) | ||||||
|  |  | ||||||
|  |         for language, value in keys.items(): | ||||||
|  |             translation.activate(language) | ||||||
|  |             assert str(localized_value) == value | ||||||
|  |  | ||||||
|  |     @staticmethod | ||||||
|  |     def test_eq(): | ||||||
|  |         """Tests whether the __eq__ operator | ||||||
|  |         of :see:LocalizedValue works properly.""" | ||||||
|  |  | ||||||
|  |         a = LocalizedValue({'en': 'a', 'ar': 'b'}) | ||||||
|  |         b = LocalizedValue({'en': 'a', 'ar': 'b'}) | ||||||
|  |  | ||||||
|  |         assert a == b | ||||||
|  |  | ||||||
|  |         b.en = 'b' | ||||||
|  |         assert a != b | ||||||
|  |  | ||||||
|  |     @staticmethod | ||||||
|  |     def test_str_fallback(): | ||||||
|  |         """Tests whether the :see:LocalizedValue | ||||||
|  |         class's __str__'s fallback functionality | ||||||
|  |         works properly.""" | ||||||
|  |  | ||||||
|  |         test_value = 'myvalue' | ||||||
|  |  | ||||||
|  |         localized_value = LocalizedValue({ | ||||||
|  |             settings.LANGUAGE_CODE: test_value | ||||||
|  |         }) | ||||||
|  |  | ||||||
|  |         other_language = settings.LANGUAGES[-1][0] | ||||||
|  |  | ||||||
|  |         # make sure that, by default it returns | ||||||
|  |         # the value in the default language | ||||||
|  |         assert str(localized_value) == test_value | ||||||
|  |  | ||||||
|  |         # make sure that it falls back to the | ||||||
|  |         # primary language when there's no value | ||||||
|  |         # available in the current language | ||||||
|  |         translation.activate(other_language) | ||||||
|  |         assert str(localized_value) == test_value | ||||||
|  |  | ||||||
|  |         # make sure that it's just __str__ falling | ||||||
|  |         # back and that for the other language | ||||||
|  |         # there's no actual value | ||||||
|  |         assert localized_value.get(other_language) != test_value | ||||||
|  |  | ||||||
|  |     @staticmethod | ||||||
|  |     def test_deconstruct(): | ||||||
|  |         """Tests whether the :see:LocalizedValue | ||||||
|  |         class's :see:deconstruct function works properly.""" | ||||||
|  |  | ||||||
|  |         keys = get_init_values() | ||||||
|  |         value = LocalizedValue(keys) | ||||||
|  |  | ||||||
|  |         path, args, kwargs = value.deconstruct() | ||||||
|  |  | ||||||
|  |         assert args[0] == keys | ||||||
|  |  | ||||||
|  |     @staticmethod | ||||||
|  |     def test_construct_string(): | ||||||
|  |         """Tests whether the :see:LocalizedValue's constructor | ||||||
|  |         assumes the primary language when passing a single string.""" | ||||||
|  |  | ||||||
|  |         value = LocalizedValue('beer') | ||||||
|  |         assert value.get(settings.LANGUAGE_CODE) == 'beer' | ||||||
|  |  | ||||||
		Reference in New Issue
	
	Block a user