Beispiel #1
0
    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"])
Beispiel #2
0
    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"
             ),
        )
Beispiel #3
0
    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'
        ])
Beispiel #4
0
    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"
        )
Beispiel #7
0
 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())
Beispiel #8
0
    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")
Beispiel #9
0
    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()
Beispiel #10
0
    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!"
        )
Beispiel #11
0
    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...")
Beispiel #12
0
    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!"
        )
Beispiel #13
0
    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!"])
Beispiel #14
0
    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"
        )
Beispiel #16
0
    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)
Beispiel #18
0
    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"
            ]
        )
Beispiel #19
0
    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",
            ],
        )
Beispiel #20
0
    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()
Beispiel #21
0
    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)