コード例 #1
0
    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)
コード例 #2
0
    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')
コード例 #3
0
    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)
コード例 #4
0
 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)
コード例 #5
0
 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'))
コード例 #6
0
    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')
コード例 #7
0
    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)
コード例 #8
0
    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)
コード例 #9
0
    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)
コード例 #10
0
 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}))
コード例 #11
0
    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)
コード例 #12
0
    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)
コード例 #13
0
    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()])
コード例 #14
0
    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)
コード例 #15
0
    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()])
コード例 #16
0
    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)
コード例 #17
0
    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)
コード例 #18
0
    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)
コード例 #19
0
    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)
コード例 #20
0
    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)
コード例 #21
0
    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')])
コード例 #22
0
    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'))
コード例 #23
0
    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}))
コード例 #24
0
    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}))
コード例 #25
0
    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)
コード例 #26
0
    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'))
コード例 #27
0
    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'))
コード例 #28
0
    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])
コード例 #29
0
    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
コード例 #30
0
    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')