def test_log_page_POST_request_return_filtered_logs(self): service1 = ServiceFactory(repo_name='service_1') service2 = ServiceFactory(repo_name='service_2') service3 = ServiceFactory(repo_name='service_3') log1 = LogFactory(service=service1) log2 = LogFactory(service=service2) log3 = LogFactory(service=service3, status=False) post_request = RequestFactory().post('/request', { 'services': 0, 'status': 0 }) view = setup_view(LogView(), post_request) response = view.post(view.request) self.assertContains(response, 'No Results') post_request = RequestFactory().post('/request', { 'services': service1.pk, 'status': 1 }) view = setup_view(LogView(), post_request) response = view.post(view.request) self.assertContains(response, log1.service) self.assertNotContains(response, log3.service) post_request = RequestFactory().post('/request', { 'services': service3.pk, 'status': 0 }) view = setup_view(LogView(), post_request) response = view.post(view.request) self.assertContains(response, log3.service) self.assertNotContains(response, log1.service) self.assertNotContains(response, log2.service)
def test_repo_api_dispatch_initialize_repository_api( self, mock_respository_api): get_request = RequestFactory().get('/request') view = setup_view(RepoAPIView(), get_request) view.dispatch(MagicMock(), 'xx') mock_respository_api.assert_called_once_with('xx')
def test_service_POST_request_return_status_500_if_service_lock( self, mock_object): mock_object.return_value = MagicMock(lock=lambda: True) view = setup_view(ServiceRestoreView(), self.post_request) response = view.post(view.request) self.assertEqual(response.status_code, 500)
def test_login_view_status_code(self): view = setup_view(loginView(), self.get_request) view.request.user = MagicMock() view.request.user.is_authenticated = MagicMock(name='is_authenticated', return_value=False) response = view.get(view.request) self.assertEqual(response.status_code, 200)
def test_logout_redirect_to_login_page(self): self.get_request.session = MagicMock() view = setup_view(logoutView(), self.get_request) response = view.get(view.request) self.assertEqual(response.status_code, 302) self.assertIn(reverse('ftpdeploy_login'), response.serialize().decode('utf-8'))
def test_log_skip_deploy_view_POST_request_return_json_response(self): log1 = LogFactory() view = setup_view(LogSkipDeployView(), self.post_request, pk=log1.pk) response = view.post(view.request) response = json.loads(response.content.decode('utf-8')) self.assertEqual(response['status'], 'success')
def test_service_notification_set_message_after_success_submit( self, mock_messages): mock_messages.add_message = MagicMock() view = setup_view(ServiceNotificationView(), self.get_request) view.get_success_url = lambda: '' request = view.form_valid(MagicMock(name='form')) self.assertTrue(mock_messages.add_message.called)
def test_log_display_logs_entries(self): log1 = LogFactory() log2 = LogFactory() view = setup_view(LogView(), self.get_request) response = view.get(view.request) self.assertContains(response, log1.service) self.assertContains(response, log2.service)
def test_log_skip_deploy_view_POST_request_set_skip_flag(self): log1 = LogFactory() view = setup_view(LogSkipDeployView(), self.post_request) view.get_object = lambda: log1 response = view.post(view.request) log = Log.objects.get(pk=log1.pk) self.assertTrue(log.skip)
def test_service_notification_view_redirect_after_success_submit(self): view = setup_view(ServiceNotificationView(), self.get_request, pk=self.service.pk) request = view.get_success_url() self.assertEqual( request, reverse('ftpdeploy_service_manage', kwargs={'pk': self.service.pk}))
def test_service_status_POST_list_response_display_service(self): post_request = RequestFactory().post('/request', {'response': 'list'}) view = setup_view(ServiceStatusView(), post_request) self.service.check = MagicMock() self.service.save = MagicMock() view.get_object = MagicMock(return_value=self.service) response = view.post(view.request) self.assertContains(response, self.service.repo_name)
def test_service_dashboard_view_display_services(self): service1 = ServiceFactory() service2 = ServiceFactory() view = setup_view(DashboardView(), self.get_request) response = view.get(view.request) self.assertContains(response, service1.repo_name) self.assertContains(response, service2.repo_name)
def test_service_edit_POST_request_perform_service_check( self, mock_messages): view = setup_view(ServiceEditView(), self.post_request, pk=self.service.pk) view.get_object = lambda: MagicMock(name='service') response = view.post(view.request) view.object.assert_has_calls([call.validate(), call.save()])
def test_service_edit_POST_request_set_message_after_success_submit( self, mock_messages): view = setup_view(ServiceEditView(), self.post_request, pk=self.service.pk) view.get_object = lambda: MagicMock(name='service') response = view.post(view.request) self.assertTrue(mock_messages.add_message.called)
def test_repo_api_POST_repositories_data_perform_repositories_call(self): post_request = RequestFactory().post('/request', {'data': 'respositories'}) view = setup_view(RepoAPIView(), post_request) view.repo_api = MagicMock(name='repo_api') view.repo_api.repositories = MagicMock(return_value="") view.post(view.request, 'bb') view.repo_api.assert_has_calls([call.repositories()])
def test_service_add_POST_request_perform_service_check(self): view = setup_view(ServiceAddView(), self.get_request) view.object = MagicMock(spec_set=Service) view.object.pk = self.service.pk response = view.get_success_url() calls = [call.validate(), call.save()] view.object.assert_has_calls(calls)
def test_service_set_message_after_success_submit(self, mock_messages): mock_messages.add_message = MagicMock() view = setup_view(ServiceAddView(), self.get_request) view.object = MagicMock(name='object') view.get_success_url = MagicMock() view.form_valid(MagicMock(name='form')) self.assertTrue(mock_messages.add_message.called)
def test_service_dashboard_view_POST_request_return_filtered_services( self): service1 = ServiceFactory(repo_name='repo_name1') service2 = ServiceFactory(repo_name='repo_name2') post_request = RequestFactory().post('/request', {'services': service1.pk}) view = setup_view(DashboardView(), post_request) response = view.post(view.request) self.assertContains(response, service1.repo_name) self.assertNotContains(response, service2.repo_name) post_request = RequestFactory().post('/request', {'services': service2.pk}) view = setup_view(DashboardView(), post_request) response = view.post(view.request) self.assertContains(response, service2.repo_name) self.assertNotContains(response, service1.repo_name)
def test_notification_view_display_notifications(self): notification1 = NotificationFactory() notification2 = NotificationFactory() view = setup_view(NotificationView(), self.get_request) response = view.get(view.request) self.assertContains(response, notification1.name) self.assertContains(response, notification2.name)
def test_service_delete_set_message_after_success_submit( self, mock_messages): """service delete page return message after delete""" mock_messages.add_message = MagicMock() view = setup_view(ServiceDeleteView(), self.get_request, pk=self.service.pk) view.delete(view.request) self.assertTrue(mock_messages.add_message.called)
def test_repo_api_POST_add_hook_data_perform_add_hook_call(self): post_request = RequestFactory().post('/request', {'data': 'addhook'}) view = setup_view(RepoAPIView(), post_request) view.get_object = lambda: self.service view.repo_api = MagicMock(name='repo_api') view.repo_api.add_hook = MagicMock(return_value="") view.post('request', 'bb') view.repo_api.assert_has_calls( [call.add_hook(self.service, 'request')])
def test_login_view_redirect_if_already_login(self): view = setup_view(loginView(), self.get_request) view.request.user = MagicMock(name='user') view.request.user.is_authenticated = MagicMock(name='is_authenticated', return_value=True) response = view.get(view.request) self.assertEqual(response.status_code, 302) self.assertIn(reverse('ftpdeploy_dashboard'), response.serialize().decode('utf-8'))
def test_service_add_view_redirect_to_service_manage_page_after_success_submit( self): view = setup_view(ServiceAddView(), self.get_request) view.object = MagicMock(spec_set=Service) view.object.pk = self.service.pk redirect = view.get_success_url() self.assertEqual( redirect, reverse('ftpdeploy_service_manage', kwargs={'pk': self.service.pk}))
def test_service_edit_view_redirect_to_service_dashboard_page_after_success_submit( self): view = setup_view(ServiceEditView(), self.get_request, pk=self.service.pk) redirect = view.get_success_url() self.assertEqual( redirect, reverse('ftpdeploy_service_manage', kwargs={'pk': self.service.pk}))
def test_service_satus_POST_request_perform_service_check(self): view = setup_view(ServiceStatusView(), self.get_request) service = MagicMock(name='service') view.get_object = MagicMock(name='get_object', return_value=service) try: view.post(self.get_request) except: pass calls = [call.validate(), call.save()] service.assert_has_calls(calls)
def test_form_valid_authenticate_fail_set_error_message( self, mock_authenticate, mock_messages): mock_messages.error = MagicMock(name='error_message') mock_authenticate.return_value = None view = setup_view(loginView(), self.get_request) view.form_class = MagicMock() response = view.form_valid(view.form_class) mock_messages.error.assert_has_calls self.assertEqual(response.status_code, 302) self.assertIn(reverse('ftpdeploy_login'), response.serialize().decode('utf-8'))
def test_service_restore_POST_request_return_deploy_view( self, mock_object): view = setup_view(ServiceRestoreView(), self.post_request) get_object = MagicMock(name='get_object', secret_key='abc123', lock=lambda: False) mock_object.return_value = get_object response = view.post(view.request) self.assertIn( reverse('ftpdeploy_deploy', kwargs={'secret_key': get_object.secret_key}), response.content.decode('utf-8'))
def test_service_dashboard_view_set_services_in_appropriate_order(self): service1 = ServiceFactory() service2 = ServiceFactory(status=False) service3 = ServiceFactory() log1 = LogFactory(service=service1) log2 = LogFactory(service=service2) log3 = LogFactory(service=service3) view = setup_view(DashboardView(), self.get_request) response = view.get(view.request) object_list = list(response.context_data['object_list']) self.assertListEqual(object_list, [service2, service3, service1])
def test_form_valid_authenticate_success_log_user_in( self, mock_authenticate, mock_login_user): mock_authenticate.return_value = True self.get_request.session = MagicMock(name='session') view = setup_view(loginView(), self.get_request) view.form_class = MagicMock(name='form') view.form_class.cleaned_data.__getitem__ = MagicMock( name='cleaned_data', return_value='admin') get_request = view.form_valid(view.form_class) mock_authenticate.assert_called_once_with(username='******', password='******') mock_login_user.assert_has_calls
def test_service_status_POST_json_response_return_proper_json_data(self): post_request = RequestFactory().post('/request', {'response': 'json'}) view = setup_view(ServiceStatusView(), post_request) self.service.validate = MagicMock() self.service.save = MagicMock() self.service.updated = 'now' self.service.status_message = 'status message' view.get_object = MagicMock(return_value=self.service) response = view.post(view.request) response = json.loads(response.content.decode('utf-8')) self.assertEqual(response['status'], True) self.assertEqual(response['updated'], 'now') self.assertEqual(response['status_message'], 'status message')