Skip to content

Commit a91e583

Browse files
committed
#1 - Update and create new unit tests
1 parent 80b1dd7 commit a91e583

File tree

1 file changed

+53
-23
lines changed

1 file changed

+53
-23
lines changed

database/tests/test_metadata.py

+53-23
Original file line numberDiff line numberDiff line change
@@ -11,42 +11,72 @@
1111
limitations under the License.
1212
"""
1313

14+
import sqlalchemy as sa
15+
1416
from aiohttp.test_utils import unittest_run_loop
15-
from database.job import save_job
16-
from database.metadata import metadata, search_metadata
17+
from database.metadata import metadata, search_metadata, update_metadata
18+
from database.models import Job
1719
from database.tests.test_base import DBTestCase
1820

1921

20-
class SaveMetadataTestCase(DBTestCase):
22+
class MetadataTestCase(DBTestCase):
2123
"""
2224
Run this test with the following command:
23-
ENVIRONMENT=TEST python -m unittest database.tests.test_jobs.SaveMetadataTestCase
25+
ENVIRONMENT=TEST python -m unittest database.tests.test_jobs.MetadataTestCase
2426
"""
2527
async def setUpAsync(self):
2628
await super().setUpAsync()
2729

30+
async with self.app['engine'].acquire() as connection:
31+
await connection.execute(Job.insert().values(job_id='foo.bar'))
32+
await connection.execute(Job.insert().values(job_id='urs001'))
33+
34+
results = [
35+
{"job_id": "foo.bar", "name": "rnacentral", "primary_id": "urs001"},
36+
{"job_id": "urs001", "name": "rnacentral", "primary_id": None},
37+
{"job_id": "foo.bar", "name": "test", "primary_id": None},
38+
]
39+
await metadata(self.app['engine'], results=results)
40+
41+
async def tearDownAsync(self):
42+
async with self.app['engine'].acquire() as connection:
43+
await connection.execute('DELETE FROM database')
44+
await connection.execute('DELETE FROM result')
45+
await connection.execute('DELETE FROM job')
46+
47+
await super().tearDownAsync()
48+
2849
@unittest_run_loop
29-
async def test_save_job(self):
30-
job_id = await save_job(
31-
self.app['engine'],
32-
job_id="foo.bar"
33-
)
34-
urs = await save_job(
35-
self.app['engine'],
36-
job_id="urs001"
37-
)
38-
results = [
39-
{"job_id": job_id, "name": "rnacentral", "primary_id": urs},
40-
{"job_id": urs, "name": "rnacentral", "primary_id": None},
41-
{"job_id": job_id, "name": "test", "primary_id": None},
42-
]
43-
await metadata(self.app['engine'], results=results)
44-
45-
find_metadata_1 = await search_metadata(self.app['engine'], job_id, "test", None)
50+
async def test_find_job_id_with_expert_db(self):
51+
find_metadata_1 = await search_metadata(self.app['engine'], "foo.bar", "test", None)
4652
assert find_metadata_1 is not None
4753

48-
find_metadata_2 = await search_metadata(self.app['engine'], job_id, "rnacentral", urs)
54+
@unittest_run_loop
55+
async def test_find_job_id_with_rnacentral(self):
56+
find_metadata_2 = await search_metadata(self.app['engine'], "foo.bar", "rnacentral", 'urs001')
4957
assert find_metadata_2 is not None
5058

51-
find_metadata_3 = await search_metadata(self.app['engine'], urs, "rnacentral", None)
59+
@unittest_run_loop
60+
async def test_find_urs(self):
61+
find_metadata_3 = await search_metadata(self.app['engine'], "urs001", "rnacentral", None)
5262
assert find_metadata_3 is not None
63+
64+
@unittest_run_loop
65+
async def test_wrong_job_id(self):
66+
wrong_job = await search_metadata(self.app['engine'], "wrong_job", "rnacentral", None)
67+
assert wrong_job is None
68+
69+
@unittest_run_loop
70+
async def test_update_manually_annotated(self):
71+
await update_metadata(self.app['engine'], "foo.bar", "urs001", "rnacentral")
72+
73+
async with self.app['engine'].acquire() as connection:
74+
query = sa.text('''
75+
SELECT manually_annotated
76+
FROM database
77+
WHERE job_id=:job_id AND primary_id=:primary_id AND name=:name
78+
''')
79+
80+
async for row in await connection.execute(query, job_id="foo.bar", primary_id="urs001", name="rnacentral"):
81+
result = row.manually_annotated
82+
assert result is True

0 commit comments

Comments
 (0)