def test_is_authorized_staff_authorized_to_hijack_staff(self): with SettingsOverride( hijack_settings, HIJACK_AUTHORIZE_STAFF=True, HIJACK_AUTHORIZE_STAFF_TO_HIJACK_STAFF=True, ): self.assertTrue(hijack_settings.HIJACK_AUTHORIZE_STAFF) self.assertTrue( hijack_settings.HIJACK_AUTHORIZE_STAFF_TO_HIJACK_STAFF) self.assertTrue(is_authorized(self.superuser, self.superuser)) self.assertTrue(is_authorized(self.superuser, self.staff_user)) self.assertTrue(is_authorized(self.superuser, self.user)) self.assertFalse(is_authorized(self.staff_user, self.superuser)) self.assertTrue(is_authorized(self.staff_user, self.staff_user)) self.assertTrue(is_authorized(self.staff_user, self.user)) self.assertFalse(is_authorized(self.user, self.superuser)) self.assertFalse(is_authorized(self.user, self.staff_user)) self.assertFalse(is_authorized(self.user, self.user))
def test_check_get_requests_allowed(self): self.assertTrue(hijack_settings.HIJACK_ALLOW_GET_REQUESTS) errors = checks.check_get_requests_allowed(HijackAdminConfig) self.assertFalse(errors) with SettingsOverride(hijack_settings, HIJACK_ALLOW_GET_REQUESTS=False): errors = checks.check_get_requests_allowed(HijackAdminConfig) expected_errors = [ Error( 'Hijack GET requests must be allowed for django-hijack-admin to work.', hint='Set HIJACK_ALLOW_GET_REQUESTS to True.', obj=None, id='hijack_admin.E001', ) ] self.assertEqual(errors, expected_errors)
def test_custom_authorization_check(self): for custom_check_path in [ 'hijack.tests.test_app.authorization_checks.can_hijack_default', 'hijack.tests.test_app.authorization_checks.everybody_can_hijack', 'hijack.tests.test_app.authorization_checks.nobody_can_hijack', ]: with SettingsOverride( hijack_settings, HIJACK_AUTHORIZATION_CHECK=custom_check_path): custom_check = import_string(custom_check_path) for hijacker, hijacked in [ (self.superuser, self.superuser), (self.superuser, self.staff_user), (self.superuser, self.user), (self.staff_user, self.superuser), (self.staff_user, self.staff_user), (self.staff_user, self.user), (self.user, self.superuser), (self.user, self.staff_user), (self.user, self.user), ]: self.assertEqual(custom_check(hijacker, hijacked), is_authorized(hijacker, hijacked))
def test_settings_override(self): self.assertFalse(hijack_settings.HIJACK_AUTHORIZE_STAFF) with SettingsOverride(hijack_settings, HIJACK_AUTHORIZE_STAFF=True): self.assertTrue(hijack_settings.HIJACK_AUTHORIZE_STAFF) self.assertFalse(hijack_settings.HIJACK_AUTHORIZE_STAFF)
def test_settings_override(self): self.assertTrue(hijack_settings.HIJACK_DISPLAY_ADMIN_BUTTON) with SettingsOverride(hijack_settings, HIJACK_DISPLAY_ADMIN_BUTTON=False): self.assertFalse(hijack_settings.HIJACK_DISPLAY_ADMIN_BUTTON) self.assertTrue(hijack_settings.HIJACK_DISPLAY_ADMIN_BUTTON)