Example #1
0
    def test_add_multiple_documents_to_corpus(self, mocked_post):
        example_document_2 = self.example_document.copy()
        example_document_2['url'] = "http://pypln.example.com/documents/2/"

        mock1, mock2 = Mock(), Mock()
        mock1.status_code = mock2.status_code = 201
        mock1.json.return_value = self.example_document
        mock2.json.return_value = example_document_2
        mocked_post.side_effect = [mock1, mock2]

        corpus = Corpus(session=self.session, **self.example_json)
        result = corpus.add_documents(["content_1", "content_2"])
        documents, errors = result

        self.assertEqual(errors, [])

        self.assertIs(type(documents[0]), Document)
        self.assertIs(type(documents[1]), Document)

        for key, value in self.example_document.items():
            if key == 'properties':
                key = 'properties_url'
            self.assertEqual(value, getattr(documents[0], key))
        for key, value in example_document_2.items():
            if key == 'properties':
                key = 'properties_url'
            self.assertEqual(value, getattr(documents[1], key))
Example #2
0
    def test_add_multiple_documents_to_corpus(self, mocked_post):
        example_document_2 = self.example_document.copy()
        example_document_2['url'] = "http://pypln.example.com/documents/2/"

        mock1, mock2 = Mock(), Mock()
        mock1.status_code = mock2.status_code = 201
        mock1.json.return_value = self.example_document
        mock2.json.return_value = example_document_2
        mocked_post.side_effect = [mock1, mock2]

        corpus = Corpus(session=self.session, **self.example_json)
        result = corpus.add_documents(["content_1", "content_2"])
        documents, errors = result

        self.assertEqual(errors, [])

        self.assertIs(type(documents[0]), Document)
        self.assertIs(type(documents[1]), Document)

        for key, value in self.example_document.items():
            if key == 'properties':
                key = 'properties_url'
            self.assertEqual(value, getattr(documents[0], key))
        for key, value in example_document_2.items():
            if key == 'properties':
                key = 'properties_url'
            self.assertEqual(value, getattr(documents[1], key))
Example #3
0
    def test_adding_multiple_documents_returns_an_error(self, mocked_add_document):
        results = [self.example_document, RuntimeError]
        mocked_add_document.side_effect = results

        corpus = Corpus(session=self.session, **self.example_json)
        result = corpus.add_documents(["content_1", "content_2"])

        expected_calls = [call("content_1"), call("content_2")]
        mocked_add_document.assert_has_calls(expected_calls)

        expected = ([self.example_document], [("content_2", RuntimeError())])
        # How should we test this? The second element of the 'errors' tuple is
        # a different instance of RuntimeError, so it doesn't evaluate as equal
        # to the one raise in the mock. For now I'll just check everything
        # separatedly.
        self.assertEqual(result[0], expected[0])
        self.assertEqual(result[1][0][0], expected[1][0][0])
        self.assertIsInstance(expected[1][0][1], RuntimeError)
Example #4
0
    def test_adding_multiple_documents_returns_an_error(
            self, mocked_add_document):
        results = [self.example_document, RuntimeError]
        mocked_add_document.side_effect = results

        corpus = Corpus(session=self.session, **self.example_json)
        result = corpus.add_documents(["content_1", "content_2"])

        expected_calls = [call("content_1"), call("content_2")]
        mocked_add_document.assert_has_calls(expected_calls)

        expected = ([self.example_document], [("content_2", RuntimeError())])
        # How should we test this? The second element of the 'errors' tuple is
        # a different instance of RuntimeError, so it doesn't evaluate as equal
        # to the one raise in the mock. For now I'll just check everything
        # separatedly.
        self.assertEqual(result[0], expected[0])
        self.assertEqual(result[1][0][0], expected[1][0][0])
        self.assertIsInstance(expected[1][0][1], RuntimeError)