Пример #1
0
    def test_with_good_arguments(self, mocked_use_case):
        book = Book.from_dict({
            'code': '3251a5bd-86be-428d-8ae9-6e51a8048c33',
            'title': '1984',
            'author': 'George Orwell',
            'year': 1984,
            'language': 'English',
            'is_available': True,
            'reader': None
        })

        mocked_use_case().execute.return_value = ro.ResponseSuccess(book)

        response = self.c.post(reverse('books_list'), {
            'code': '3251a5bd-86be-428d-8ae9-6e51a8048c33',
            'title': '1984',
            'author': 'George Orwell',
            'year': 1984,
            'language': 'English',
            'is_available': True,
            'reader': None
        })
        self.assertEqual(response.status_code, 201)
        self.assertEqual(json.loads(json.dumps(book, cls=books.BookEncoder)),
                         json.loads(response.content.decode('utf-8')))
Пример #2
0
 def process_request(self, request_object):
     resp = self.repo.update(pk=request_object.pk,
                             patch=request_object.patch)
     if isinstance(resp, errors.Error):
         return response_object.ResponseFailure.from_error(resp)
     else:
         return response_object.ResponseSuccess(resp)
Пример #3
0
def test_get(mock_use_case, client):
    mock_use_case().execute.return_value = res.ResponseSuccess(books)

    http_response = client.get('/books')

    assert json.loads(http_response.data) == [dictionary]
    assert http_response.status_code == 200
    assert http_response.mimetype == 'application/json'
Пример #4
0
    def test_repository_list_without_parameters(self, mocked_use_case):
        reader = Reader.from_dict({
            'code': '3251a5bd-86be-428d-8ae9-6e51a8048c33',
            'full_name': 'VS',
            'reg_date': datetime.date(2010, 1, 1)
        })

        mocked_use_case().execute.return_value = ro.ResponseSuccess(reader)
        response = self.c.get(reverse('readers_list'))

        self.assertEqual(response.status_code, 200)
        self.assertEqual(
            json.loads(json.dumps(reader, cls=readers.ReaderEncoder)),
            json.loads(response.content.decode('utf-8')))
Пример #5
0
    def test_with_good_arguments(self, mocked_use_case):
        reader = Reader.from_dict({
            'code': '3251a5bd-86be-428d-8ae9-6e51a8048c33',
            'full_name': 'VS',
            'reg_date': '2000-10-01'
        })

        mocked_use_case().execute.return_value = ro.ResponseSuccess(reader)

        response = self.c.post(reverse('readers_list'), {})
        self.assertEqual(response.status_code, 201)
        self.assertEqual(
            json.loads(json.dumps(reader, cls=readers.ReaderEncoder)),
            json.loads(response.content.decode('utf-8')))
Пример #6
0
    def test_request_object_initialisation_and_use_with_filters(self, mocked_use_case):
        mocked_use_case().execute.return_value = ro.ResponseSuccess()

        internal_request_object = mock.Mock()

        request_object_class = 'Django.books.views.BookListRequestObject'
        with mock.patch(request_object_class) as mock_request_object:
            mock_request_object.from_dict.return_value = internal_request_object
            self.c.get('/books?filter_param1=value1&filter_param2=value2')

        mock_request_object.from_dict.assert_called_with(
            {'filters': {'param1': 'value1', 'param2': 'value2'}}
        )
        mocked_use_case().execute.assert_called_with(internal_request_object)
Пример #7
0
    def test_repository_update(self, mocked_use_case):
        updated_reader = Reader.from_dict({
            'code': '3251a5bd-86be-428d-8ae9-6e51a8048c33',
            'full_name': 'John Doe',
            'reg_date': '2015-01-01'
        })

        mocked_use_case().execute.return_value = ro.ResponseSuccess(
            updated_reader)
        response = self.c.patch('/readers/1/', {"full_name": "John Doe"})

        self.assertEqual(response.status_code, 200)
        self.assertEqual(
            json.loads(json.dumps(updated_reader, cls=readers.ReaderEncoder)),
            json.loads(response.content.decode('utf-8')))
Пример #8
0
    def test_repository_return(self, mocked_use_case):
        updated_book = Book.from_dict({'code': '3251a5bd-86be-428d-8ae9-6e51a8048c33',
                                       'title': 'Fahrenheit 451',
                                       'author': 'Ray Bradbury',
                                       'year': 1984,
                                       'language': 'English',
                                       'is_available': True,
                                       'reader': None
                                       })

        mocked_use_case().execute.return_value = ro.ResponseSuccess(updated_book)
        response = self.c.patch('/books/1/', {"reader": None, 'action': 'take'})

        self.assertEqual(response.status_code, 200)
        self.assertEqual(json.loads(json.dumps(updated_book, cls=books.BookEncoder)),
                         json.loads(response.content.decode('utf-8')))
Пример #9
0
    def test_repository_give(self, mocked_use_case):
        reader = Reader.from_dict({
            'code': 'r2rwr3re-bdfc-e2ww-5644-hd94id04kd9r',
            'full_name': 'John Smith',
            'reg_date': datetime.date(2017, 2, 13)
        })
        updated_book = Book.from_dict({'code': '3251a5bd-86be-428d-8ae9-6e51a8048c33',
                                       'title': 'Fahrenheit 451',
                                       'author': 'Ray Bradbury',
                                       'year': 1984,
                                       'language': 'English',
                                       'is_available': False,
                                       'reader': reader
                                       })

        mocked_use_case().execute.return_value = ro.ResponseSuccess(updated_book)
        response = self.c.patch('/books/1/', {"reader": reader, 'action': 'give'})

        self.assertEqual(response.status_code, 200)
        self.assertEqual(json.loads(json.dumps(updated_book, cls=books.BookEncoder)),
                         json.loads(response.content.decode('utf-8')))
Пример #10
0
    def test_repository_details(self, mocked_use_case):
        mocked_use_case().execute.return_value = ro.ResponseSuccess()
        response = self.c.delete('/readers/1/')

        self.assertEqual(response.status_code, 204)
        self.assertEqual('', response.content.decode('utf-8'))
Пример #11
0
def test_response_success_contains_value(response_value):
    response = response_object.ResponseSuccess(response_value)

    assert response.value == response_value
Пример #12
0
def test_response_success_is_true(response_value):
    assert bool(response_object.ResponseSuccess(response_value)) is True
Пример #13
0
 def process_request(
         self, request_object: GetEventRequestObject) -> ResponseSuccess:
     event = self.repo.get_all_events(filter_params=request_object.data)
     return res.ResponseSuccess(event)
Пример #14
0
 def process_request(
     self, request_object: GetEventForSpecificItemRequestObject
 ) -> ResponseSuccess:
     event = self.repo.get_event_by_item(item_id=request_object.data)
     return res.ResponseSuccess(event)
Пример #15
0
 def process_request(self, request_object: None) -> ResponseSuccess:
     event = self.repo.newest_event()
     return res.ResponseSuccess(event)
Пример #16
0
 def process_request(self, request_object: None) -> ResponseSuccess:
     event_count = self.repo.get_event_count_by_type()
     return res.ResponseSuccess(event_count)
Пример #17
0
 def process_request(
         self, request_object: GetEventRequestObject) -> ResponseSuccess:
     event = self.repo.get_event(event_id=request_object.data)
     return res.ResponseSuccess(event)
Пример #18
0
 def process_request(self, request_object):
     reader = self.repo.from_dict(request_object.init_values)
     return response_object.ResponseSuccess(reader)
Пример #19
0
 def process_request(self, request_object):
     domain_reader = self.repo.list(filters=request_object.filters)
     return response_object.ResponseSuccess(domain_reader)
Пример #20
0
 def process_request(
         self, request_object: SaveEventRequestObject) -> ResponseSuccess:
     event = self.repo.save(event_data=request_object.data)
     return res.ResponseSuccess(event)