class CompanyAdminDetailViewTestCase(TestCase): def setUp(self): self.client = Client() self.company = CompanyGenerator().generate() self.user = UserGenerator().generate() # disable two-factor authentication @modify_settings( MIDDLEWARE_CLASSES={'remove': ['django_otp.middleware.OTPMiddleware']}) @mock.patch.object(AdminSiteOTPRequiredMixin, 'has_permission', return_value=True) def test_view(self, mock_permission): self.user.is_superuser = True self.user.is_staff = True self.user.save() self.client.force_login(self.user) res = self.client.get( reverse('admin:shareholder_company_change', args=[self.company.pk])) self.assertEqual(res.status_code, 200)
def test_dispatch(self, mock_login, mock_logout, mock_login_required): self.mixin.http_method_not_allowed = mock.Mock(side_effect=Exception) req = self.factory.get('/') with self.assertRaises(Exception): self.mixin.dispatch(req) self.mixin.http_method_not_allowed.assert_called() self.mixin.http_method_not_allowed.reset_mock() self.mixin.http_method_names = ['get'] self.mixin.get = mock.Mock() self.mixin.dispatch(req) self.mixin.get.assert_called() self.mixin.get.reset_mock() user = UserGenerator().generate() user.is_active = False user.save() req = self.factory.get('/', data=dict(token=user.auth_token)) self.mixin.dispatch(req) mock_logout.assert_called() mock_logout.reset_mock() user.is_active = True user.save() self.mixin.dispatch(req) mock_login.assert_called() mock_login.reset_mock() self.mixin.login_user = False self.mixin.dispatch(req) mock_login.assert_not_called() self.mixin.login_required = True self.mixin.dispatch(req) mock_login_required.assert_called()