Esempio n. 1
0
    def test_search_html_response(self):
        """ searches remote connectors """
        view = views.Search.as_view()

        class TestConnector(abstract_connector.AbstractMinimalConnector):
            """ nothing added here """
            def format_search_result(self, search_result):
                pass

            def get_or_create_book(self, remote_id):
                pass

            def parse_search_data(self, data):
                pass

            def format_isbn_search_result(self, search_result):
                return search_result

            def parse_isbn_search_data(self, data):
                return data

        models.Connector.objects.create(
            identifier="example.com",
            connector_file="openlibrary",
            base_url="https://example.com",
            books_url="https://example.com/books",
            covers_url="https://example.com/covers",
            search_url="https://example.com/search?q=",
        )
        connector = TestConnector("example.com")

        search_result = abstract_connector.SearchResult(
            key="http://www.example.com/book/1",
            title="Gideon the Ninth",
            author="Tamsyn Muir",
            year="2019",
            connector=connector,
        )

        request = self.factory.get("", {"q": "Test Book"})
        request.user = self.local_user
        with patch("bookwyrm.views.search.is_api_request") as is_api:
            is_api.return_value = False
            with patch(
                    "bookwyrm.connectors.connector_manager.search") as manager:
                manager.return_value = [search_result]
                response = view(request)
        self.assertIsInstance(response, TemplateResponse)
        response.render()
        self.assertEqual(response.context_data["book_results"][0].title,
                         "Gideon the Ninth")
Esempio n. 2
0
    def test_search_html_response(self):
        ''' searches remote connectors '''
        view = views.Search.as_view()

        class TestConnector(abstract_connector.AbstractMinimalConnector):
            ''' nothing added here '''
            def format_search_result(self, search_result):
                pass

            def get_or_create_book(self, remote_id):
                pass

            def parse_search_data(self, data):
                pass

        models.Connector.objects.create(
            identifier='example.com',
            connector_file='openlibrary',
            base_url='https://example.com',
            books_url='https://example.com/books',
            covers_url='https://example.com/covers',
            search_url='https://example.com/search?q=',
        )
        connector = TestConnector('example.com')

        search_result = abstract_connector.SearchResult(
            key='http://www.example.com/book/1',
            title='Gideon the Ninth',
            author='Tamsyn Muir',
            year='2019',
            connector=connector)

        request = self.factory.get('', {'q': 'Test Book'})
        request.user = self.local_user
        with patch('bookwyrm.views.search.is_api_request') as is_api:
            is_api.return_value = False
            with patch(
                    'bookwyrm.connectors.connector_manager.search') as manager:
                manager.return_value = [search_result]
                response = view(request)
        self.assertIsInstance(response, TemplateResponse)
        response.render()
        self.assertEqual(response.context_data['book_results'][0].title,
                         'Gideon the Ninth')