Add coverage reports and more tests (#78)

This commit is contained in:
Stan Kirdey 2020-04-28 07:10:32 -07:00 committed by GitHub
parent 747f402544
commit 54d32d4f1f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 52 additions and 3 deletions

1
.gitignore vendored
View File

@ -2,6 +2,7 @@
qa.db
**/qa.db
**/*qa*.db
**/test-reports
# Byte-compiled / optimized / DLL files
__pycache__/

View File

@ -72,6 +72,8 @@ class TfidfRetriever(BaseRetriever):
# get scores
indices_and_scores = self._calc_scores(query)
print(indices_and_scores)
# rank paragraphs
df_sliced = self.df.loc[indices_and_scores.keys()]
df_sliced = df_sliced[:top_k]

View File

@ -9,4 +9,5 @@ sklearn
elasticsearch
elastic-apm
tox
coverage
# optional: sentence-transformers

7
test/test_document.py Normal file
View File

@ -0,0 +1,7 @@
from haystack.database.base import Document
def test_document_data_access():
doc = Document(id=1, text="test")
assert doc.text == "test"
assert doc['text'] == "test"

9
test/test_farm_reader.py Normal file
View File

@ -0,0 +1,9 @@
import pytest
from haystack.reader.farm import FARMReader
def test_farm_reader():
reader = FARMReader(model_name_or_path="deepset/bert-base-cased-squad2", use_gpu=False)
assert reader is not None
assert isinstance(reader, FARMReader)

View File

@ -0,0 +1,19 @@
from haystack.database.base import Document
def test_tfidf_retriever():
from haystack.retriever.tfidf import TfidfRetriever
test_docs = [
{"name": "testing the finder 1", "text": "godzilla says hello"},
{"name": "testing the finder 2", "text": "optimus prime says bye"},
{"name": "testing the finder 3", "text": "alien says arghh"}
]
from haystack.database.memory import InMemoryDocumentStore
document_store = InMemoryDocumentStore()
document_store.write_documents(test_docs)
retriever = TfidfRetriever(document_store)
retriever.fit()
assert retriever.retrieve("godzilla", top_k=1) == [Document(id='0', text='godzilla says hello', external_source_id=None, question=None, query_score=None, meta=None)]

16
tox.ini
View File

@ -5,6 +5,16 @@ envlist = py36,py37
[testenv]
changedir = test
deps = pytest
pandas
commands = pytest --basetemp="{envtmpdir}" {posargs}
deps =
coverage
pytest
pandas
setenv =
COVERAGE_FILE = test-reports/.coverage
PYTEST_ADDOPTS = --junitxml=test-reports/{envname}/junit.xml -vv
commands =
coverage run --source haystack --parallel-mode -m pytest {posargs}
coverage combine
coverage report -m
coverage html -d test-reports/coverage-html
coverage xml -o test-reports/coverage.xml