Coverage for ivatar/test_config_defaults.py: 90%

31 statements  

« prev     ^ index     » next       coverage.py v7.14.2, created at 2026-06-21 23:07 +0000

1""" 

2Unit tests for configurable default settings 

3""" 

4 

5import unittest 

6from unittest.mock import patch 

7import os 

8import django 

9 

10os.environ["DJANGO_SETTINGS_MODULE"] = "ivatar.settings" 

11django.setup() 

12 

13from django.test import TestCase 

14 

15 

16class ConfigurableDefaultsTestCase(TestCase): 

17 """ 

18 Test cases for configurable default settings for gravatarproxy, gravatarredirect, and forcedefault 

19 """ 

20 

21 def test_config_imports_successfully(self): 

22 """ 

23 Test that the new configuration options can be imported successfully 

24 """ 

25 try: 

26 from ivatar.settings import ( 

27 DEFAULT_GRAVATARPROXY, 

28 DEFAULT_GRAVATARREDIRECT, 

29 FORCEDEFAULT, 

30 ) 

31 

32 # Test that they have the expected default values 

33 self.assertTrue(isinstance(DEFAULT_GRAVATARPROXY, bool)) 

34 self.assertTrue(isinstance(DEFAULT_GRAVATARREDIRECT, bool)) 

35 self.assertTrue(isinstance(FORCEDEFAULT, bool)) 

36 except ImportError as e: 

37 self.fail(f"Failed to import configuration settings: {e}") 

38 

39 @patch("ivatar.settings.DEFAULT_GRAVATARPROXY", False) 

40 @patch("ivatar.settings.DEFAULT_GRAVATARREDIRECT", True) 

41 @patch("ivatar.settings.FORCEDEFAULT", True) 

42 def test_config_values_can_be_overridden(self): 

43 """ 

44 Test that configuration values can be overridden (mocked for testing) 

45 """ 

46 from ivatar import settings 

47 

48 # These should reflect the patched values 

49 self.assertFalse(settings.DEFAULT_GRAVATARPROXY) 

50 self.assertTrue(settings.DEFAULT_GRAVATARREDIRECT) 

51 self.assertTrue(settings.FORCEDEFAULT) 

52 

53 def test_default_values_are_correct(self): 

54 """ 

55 Test that the default values match the issue requirements 

56 """ 

57 from ivatar.settings import ( 

58 DEFAULT_GRAVATARPROXY, 

59 DEFAULT_GRAVATARREDIRECT, 

60 FORCEDEFAULT, 

61 ) 

62 

63 # Based on the issue, these should be the defaults for public instances 

64 self.assertTrue( 

65 DEFAULT_GRAVATARPROXY 

66 ) # Default should be True for public instances 

67 self.assertFalse(DEFAULT_GRAVATARREDIRECT) # Default should be False 

68 self.assertFalse(FORCEDEFAULT) # Default should be False 

69 

70 

71if __name__ == "__main__": 

72 unittest.main()