def post(self): data = self.parser.parse_args() if Book.query.filter(Book.isbn == data.get('isbn')).first(): return dict(message='ISBN already exists'), 409 authors = data.pop('authors', []) categories = data.pop('categories', []) book = Book(**data) append_authors_to_book(book, authors) append_categories_to_book(book, categories) book.save() return book.json(), 201
def test_json_representation_of_book(): """ GIVEN a Book model WHEN a new Book is created THEN check the json representation of the new Book """ book_data = dict( isbn='978-1-449-34284-5', title='The Art of War', num_of_pages=60, publisher='East India Publishing Company', publication_date='2018-12-17', about='Lorem ipsum dolor sit amet.', ) book = Book(**book_data) book_json = book.json() assert_that(book_json).contains_value(60, 'The Art of War') assert_that(book_json).contains_key('id', 'isbn', 'title', 'num_of_pages', 'publisher', 'publication_date', 'about')