57 lines
1.3 KiB
Python
57 lines
1.3 KiB
Python
|
|
import os
|
||
|
|
import nose
|
||
|
|
from nose.tools import raises
|
||
|
|
import mercy.models
|
||
|
|
import mercy.importers.fda
|
||
|
|
import mercy.exceptions
|
||
|
|
|
||
|
|
VALID_ROWS=[]
|
||
|
|
|
||
|
|
FIXTUREFILE=os.path.abspath(
|
||
|
|
os.path.join(
|
||
|
|
__file__,
|
||
|
|
"..",
|
||
|
|
"fixtures",
|
||
|
|
"fda_database.tar.gz"
|
||
|
|
)
|
||
|
|
)
|
||
|
|
|
||
|
|
FIXTUREFILE_BAD=os.path.abspath(
|
||
|
|
os.path.join(
|
||
|
|
__file__,
|
||
|
|
"..",
|
||
|
|
"fixtures",
|
||
|
|
"fda_database_bad.tar.gz"
|
||
|
|
)
|
||
|
|
)
|
||
|
|
|
||
|
|
FIXTUREFILE_CORRUPT=os.path.abspath(
|
||
|
|
os.path.join(
|
||
|
|
__file__,
|
||
|
|
"..",
|
||
|
|
"fixtures",
|
||
|
|
"fda_database_corrupt.tar.gz"
|
||
|
|
)
|
||
|
|
)
|
||
|
|
|
||
|
|
@raises(mercy.exceptions.CorruptTarError)
|
||
|
|
def test_fda_import_fails_on_corrupt_tar():
|
||
|
|
importer = mercy.importers.fda.FDAImporter()
|
||
|
|
impoter.read(FIXTUREFILE_CORRUPT)
|
||
|
|
|
||
|
|
def test_fda_import_populates_table():
|
||
|
|
importer = FDAImporter().read(FIXTUREFILE)
|
||
|
|
rows = mercy.models.fda.Product.query.all()
|
||
|
|
for i in range(0, len(rows)):
|
||
|
|
row = rows[i]
|
||
|
|
canned_row = CANNED_ROWS[i]
|
||
|
|
assert(len(row) == len(canned_row))
|
||
|
|
for j in canned_row.keys():
|
||
|
|
assert(row[j] == canned_row[j])
|
||
|
|
|
||
|
|
@raises(AttributeError, KeyError, ValueError)
|
||
|
|
def test_fda_import_rejects_bad_records:
|
||
|
|
importer = mercy.importers.fda.FDAImporter()
|
||
|
|
importer.read(FIXTUREFILE_BAD)
|
||
|
|
|