def test_delete_value(self): request = self._get_request("/foo/bar/?test_delete_value=3") with LoggingBuffer(name="django_tools.debug.delay", level=logging.DEBUG) as log: CacheDelay( key="delay", only_debug=False ).load( request, query_string="test_delete_value", ) log.assert_messages([ "INFO:django_tools.debug.delay:Add 'test_delete_value' value to cache", "WARNING:django_tools.debug.delay:Save 3 sec. from 'test_delete_value' for 'delay' into cache" ]) with LoggingBuffer(name="django_tools.debug.delay", level=logging.DEBUG) as log: CacheDelay( key="delay", only_debug=False ).load( request, query_string="not_existing_key", ) log.assert_messages(["DEBUG:django_tools.debug.delay:Delete 'delay' delay from cache"])
def test_filter_and_log_skip_external_package(self): instance = FilterAndLogWarnings() with LoggingBuffer(name="django_tools.unittest_utils.logging_utils", level=logging.DEBUG) as log_buffer: for i in range(3): instance( message= "test_filter_and_log_skip_external_package dist-packages %i" % i, category=UserWarning, filename="/foo/dist-packages/bar.py", lineno=456, ) instance( message= "test_filter_and_log_skip_external_package site-packages %i" % i, category=UserWarning, filename="/foo/site-packages/bar.py", lineno=789, ) log_messages = log_buffer.get_messages() print("log_messages:\n%s" % log_messages) assert_pformat_equal( log_messages, ("WARNING:django_tools.unittest_utils.logging_utils:There are warnings in: /foo/dist-packages/bar.py\n" "WARNING:django_tools.unittest_utils.logging_utils:There are warnings in: /foo/site-packages/bar.py" ), )
def test_add_app_permissions(self): with LoggingBuffer(name=None, level=logging.ERROR) as log: add_app_permissions( permission_obj=self.normal_group, app_label="django_tools_test_app" ) self.assertEqual( log.get_messages(), "DEBUG:django_tools.permissions:Add 10 permissions from app 'django_tools_test_app'" ) permissions = self.normal_group.permissions.all() permissions = permissions2list(permissions) pprint.pprint(permissions) self.assertEqual(permissions, [ 'django_tools_test_app.add_limittousergroupstestmodel', 'django_tools_test_app.change_limittousergroupstestmodel', 'django_tools_test_app.delete_limittousergroupstestmodel', 'django_tools_test_app.add_permissiontestmodel', 'django_tools_test_app.change_permissiontestmodel', 'django_tools_test_app.delete_permissiontestmodel', 'django_tools_test_app.extra_permission', 'django_tools_test_app.add_simpleparlermodel', 'django_tools_test_app.change_simpleparlermodel', 'django_tools_test_app.delete_simpleparlermodel' ])
def test_add_app_permissions(self): permissions = self.normal_group.permissions.all() permissions = permissions2list(permissions) assert_pformat_equal(permissions, []) with LoggingBuffer(name="django_tools.permissions", level=logging.DEBUG) as log_buffer: add_app_permissions(permission_obj=self.normal_group, app_label="django_tools_test_app") assert_pformat_equal( log_buffer.get_messages(), "DEBUG:django_tools.permissions:Add 13 permissions from app 'django_tools_test_app'", ) permissions = self.normal_group.permissions.all() permissions = permissions2list(permissions) assert_pformat_equal( permissions, [ "django_tools_test_app.add_limittousergroupstestmodel", "django_tools_test_app.change_limittousergroupstestmodel", "django_tools_test_app.delete_limittousergroupstestmodel", "django_tools_test_app.add_overwritefilesystemstoragemodel", "django_tools_test_app.change_overwritefilesystemstoragemodel", "django_tools_test_app.delete_overwritefilesystemstoragemodel", "django_tools_test_app.add_permissiontestmodel", "django_tools_test_app.change_permissiontestmodel", "django_tools_test_app.delete_permissiontestmodel", "django_tools_test_app.extra_permission", "django_tools_test_app.add_simpleparlermodel", "django_tools_test_app.change_simpleparlermodel", "django_tools_test_app.delete_simpleparlermodel", ], )
def test_has_perm_log(self): with LoggingBuffer(name=None, level=logging.ERROR) as log: self.assertEqual(has_perm(self.normal_user, "foo.bar1"), False) self.assertEqual( log.get_messages(), "DEBUG:django_tools.permissions:" "User normal test user has not foo.bar1")
def test_filter_and_log_warnings_create_warning(self): with LoggingBuffer(name=None, level=logging.DEBUG) as log_buffer: warnings.warn("test_filter_and_log_warnings_create_warning", UserWarning) self.assertEqual( log_buffer.get_messages(), "WARNING:django_tools.unittest_utils.logging_utils:UserWarning:test_filter_and_log_warnings_create_warning" )
def testUniqueID(self): with LoggingBuffer("django_tools.local_sync_cache") as log: c1 = LocalSyncCache(id="test1") log.clear() c2 = LocalSyncCache(id="test1") self.assertIn( "ID 'test1' was already used! It must be unique! (Existing ids are: ['test1'])", log.get_messages())
def test_has_perm_log(self): with LoggingBuffer(name="django_tools.permissions", level=logging.DEBUG) as log: assert_pformat_equal(has_perm(self.normal_user, "foo.bar1"), False) assert_pformat_equal( log.get_messages(), "DEBUG:django_tools.permissions:" "User normal_test_user has not foo.bar1")
def test_not_set(self): with LoggingBuffer(name="django_tools.debug.delay", level=logging.DEBUG) as log: with mock.patch.object(time, 'sleep', return_value=None) as mock_method: CacheDelay(key="test_not_set", only_debug=False).sleep() log.assert_messages(["DEBUG:django_tools.debug.delay:No delay for 'test_not_set' from cache"]) mock_method.assert_not_called()
def test_log_group_permissions1(self): with LoggingBuffer(name=None, level=logging.ERROR) as log: log_group_permissions(self.normal_group) self.assertEqual( log.get_messages(), "DEBUG:django_tools.permissions:User group 'Normal User Group' has no permission!" )
def test_filter_and_log_warnings_create_warning(self): with LoggingBuffer(name="django_tools_tests.test_logging_utils", level=logging.DEBUG) as log_buffer: log.debug("A test log...") assert_pformat_equal( log_buffer.get_messages(), "DEBUG:django_tools_tests.test_logging_utils:A test log...")
def test_log_group_permissions1(self): with LoggingBuffer(name="django_tools.permissions", level=logging.DEBUG) as log: log_group_permissions(self.normal_group) assert_pformat_equal( log.get_messages(), "DEBUG:django_tools.permissions:User group 'Normal User Group' has no permission!" )
def test_only_debug(self): request = self._get_request("/foo/bar/?delay=2") with LoggingBuffer(name="django_tools.debug.delay", level=logging.DEBUG) as log: CacheDelay(key="delay").load( request, query_string="delay", ) log.assert_messages(["DEBUG:django_tools.debug.delay:Ignore ?delay, because DEBUG is not ON!"])
def test_check_permission(self): with LoggingBuffer(name=None, level=logging.ERROR) as log: with self.assertRaises(PermissionDenied): check_permission(self.normal_user, "foo.bar2", raise_exception=True) log_messages = log.get_messages() print(log_messages) self.assertEqual( log_messages, 'ERROR:django_tools.permissions:User "normal test user"' ' has not permission "foo.bar2" -> raise PermissionDenied!')
def test_filter_and_log_warnings_direct_call(self): instance = FilterAndLogWarnings() with LoggingBuffer(name=None, level=logging.DEBUG) as log_buffer: instance( message="test_filter_and_log_warnings_direct_call", category=UserWarning, filename="/foo/bar.py", lineno=123 ) self.assertEqual( log_buffer.get_messages(), "WARNING:django_tools.unittest_utils.logging_utils:UserWarning:test_filter_and_log_warnings_direct_call" )
def test_delay(self): request = self._get_request("/foo/bar/?delay=2") with LoggingBuffer(name="django_tools.debug.delay", level=logging.DEBUG) as log: CacheDelay( key="delay", only_debug=False ).load( request, query_string="delay", ) log.assert_messages([ "INFO:django_tools.debug.delay:Add 'delay' value to cache", "WARNING:django_tools.debug.delay:Save 2 sec. from 'delay' for 'delay' into cache" ]) with LoggingBuffer(name="django_tools.debug.delay", level=logging.DEBUG) as log: with mock.patch.object(time, 'sleep', return_value=None) as mock_method: CacheDelay(key="delay", only_debug=False).sleep() log.assert_messages(["WARNING:django_tools.debug.delay:Delay 2 sec. for 'delay'"]) mock_method.assert_called_once_with(2)
def test_exception_logging(self): with LoggingBuffer(name=None, level=logging.ERROR) as log: with self.assertRaises(Exception): self.client.get('/raise_exception/TestTracebackLogMiddleware/') messages = log.get_messages() print(messages) self.assertIn( "Exception on url: /raise_exception/TestTracebackLogMiddleware/", messages) self.assertIn("Traceback (most recent call last):", messages) self.assertIn('django_tools_test_app/views.py", line ', messages) self.assertIn('in raise_exception', messages) self.assertIn('raise Exception(msg)', messages) self.assertIn("Exception: TestTracebackLogMiddleware", messages)
def test_log_group_permissions2(self): with LoggingBuffer(name=None, level=logging.ERROR) as log: log_group_permissions(self.staff_group) messages = [line.strip() for line in log.get_messages().splitlines()] pprint.pprint(messages) self.assertEqual( messages, [ "DEBUG:django_tools.permissions:User group 'Staff User Group' has permissions:", "* django_tools_test_app.add_permissiontestmodel", "* django_tools_test_app.change_permissiontestmodel", "* django_tools_test_app.delete_permissiontestmodel", "* django_tools_test_app.extra_permission" ] )
def test_log_user_permissions2(self): with LoggingBuffer(name="django_tools.permissions", level=logging.DEBUG) as log: log_user_permissions(self.staff_user) messages = [line.strip() for line in log.get_messages().splitlines()] pprint.pprint(messages) assert_pformat_equal( messages, [ "DEBUG:django_tools.permissions:User 'staff_test_user' has permissions:", "* django_tools_test_app.add_permissiontestmodel", "* django_tools_test_app.change_permissiontestmodel", "* django_tools_test_app.delete_permissiontestmodel", "* django_tools_test_app.extra_permission", ], )
def test_not_set(self): with LoggingBuffer(name="django_tools.debug.delay", level=logging.DEBUG) as log: with mock.patch.object(time, 'sleep', return_value=None) as mock_method: response = self.client.get("/delay/") self.assertResponse( response, must_contain=("django_tools_test_project.django_tools_test_app.views.delay_view",), must_not_contain=("error", "traceback"), status_code=200, messages=[], html=False, browser_traceback=True ) log.assert_messages(["DEBUG:django_tools.debug.delay:No delay for 'delay_view' from session"]) mock_method.assert_not_called()
def test_delay(self): with LoggingBuffer(name="django_tools.debug.delay", level=logging.DEBUG) as log: with mock.patch.object(time, 'sleep', return_value=None) as mock_method: response = self.client.get("/delay/?sec=0.02") self.assertResponse( response, must_contain=("django_tools_test_project.django_tools_test_app.views.delay_view",), must_not_contain=("error", "traceback"), status_code=200, messages=[], html=False, browser_traceback=True ) log.assert_messages([ "INFO:django_tools.debug.delay:Add 'sec' value to session", "WARNING:django_tools.debug.delay:Save 0.02 sec. from 'sec' for 'delay_view' into session", "WARNING:django_tools.debug.delay:Delay 0.02 sec. for 'delay_view'" ]) mock_method.assert_called_once_with(0.02)