Update tests

This commit is contained in:
Lucidiot 2018-07-13 15:06:53 +02:00
parent 515f5b3f43
commit 60ce5203ac
2 changed files with 43 additions and 12 deletions

View File

@ -8,6 +8,7 @@ from httmock import urlmatch, HTTMock
from usda.client import UsdaClient
from usda.tests.sample_data import \
FOOD_LIST_DATA, NUTRIENT_LIST_DATA, \
FOOD_GROUP_LIST_DATA, DERIVATION_CODES_LIST_DATA, \
FOOD_REPORT_DATA, NUTRIENT_REPORT_DATA, \
FOOD_SEARCH_DATA
@ -21,6 +22,10 @@ class TestClient(object):
return json.dumps(FOOD_LIST_DATA)
elif "lt=n" in uri.query:
return json.dumps(NUTRIENT_LIST_DATA)
elif "lt=g" in uri.query:
return json.dumps(FOOD_GROUP_LIST_DATA)
elif "lt=d" in uri.query:
return json.dumps(DERIVATION_CODES_LIST_DATA)
@urlmatch(path=r'/usda/ndb/reports')
def api_report(self, uri, request):
@ -72,6 +77,32 @@ class TestClient(object):
assert nutrients[0].name == "Calcium"
assert nutrients[1].name == "Lactose"
def test_client_list_food_groups_raw(self, apimock):
cli = UsdaClient("API_KAY")
with apimock:
groups = list(cli.list_food_groups_raw(max=5))
assert groups == FOOD_GROUP_LIST_DATA['list']['item']
def test_client_list_food_groups(self, apimock):
cli = UsdaClient("API_KAY")
with apimock:
groups = list(cli.list_food_groups(5))
assert groups[0].name == "Dairy and Eggs Products"
assert groups[1].name == "Baby Foods"
def test_client_list_derivation_codes_raw(self, apimock):
cli = UsdaClient("API_KAY")
with apimock:
codes = list(cli.list_derivation_codes_raw(max=5))
assert codes == DERIVATION_CODES_LIST_DATA['list']['item']
def test_client_list_derivation_codes(self, apimock):
cli = UsdaClient("API_KAY")
with apimock:
codes = list(cli.list_derivation_codes(5))
assert codes[0].name == "Analytical data"
assert codes[1].name == "Analytical data; derived by linear regression"
def test_client_food_report_raw(self, apimock):
cli = UsdaClient("API_KAY")
with apimock:

View File

@ -38,11 +38,11 @@ class TestUsdaDomain(object):
def test_nutrient(self):
"""Tests for Nutrient class"""
data = {
"id": 42,
"id": "42",
"name": "Lactose"
}
n = Nutrient.from_response_data(data)
assert n.id == 42
assert n.id == "42"
assert n.name == "Lactose"
assert repr(n) == "Nutrient ID 42 'Lactose'"
assert str(n) == "Lactose"
@ -50,11 +50,11 @@ class TestUsdaDomain(object):
def test_food(self):
"""Tests for Food class"""
data = {
"id": 123456,
"id": "123456",
"name": "Pizza"
}
f = Food.from_response_data(data)
assert f.id == 123456
assert f.id == "123456"
assert f.name == "Pizza"
assert repr(f) == "Food ID 123456 'Pizza'"
assert str(f) == "Pizza"
@ -65,12 +65,12 @@ class TestUsdaDomain(object):
assert fr.report_type == "Basic"
assert fr.foot_notes == ["Footnote 1", "Footnote 2"]
assert fr.food_group is None
assert fr.food.id == 123456
assert fr.food.id == "123456"
assert fr.food.name == "Pizza"
assert repr(fr) == "Food Report for 'Food ID 123456 'Pizza''"
assert repr(fr) == "FoodReport for Food ID 123456 'Pizza'"
assert len(fr.nutrients) == 1
n = fr.nutrients[0]
assert n.id == 42
assert n.id == "42"
assert n.name == "Lactose"
assert n.group == "Proximates"
assert n.unit == "g"
@ -86,18 +86,18 @@ class TestUsdaDomain(object):
"""Tests for NutrientReport class"""
nrf = NutrientReportFood.from_response_data(
NUTRIENT_REPORT_DATA['report']['foods'][0])
assert nrf.id == 42
assert nrf.id == "42"
assert nrf.name == "Pizza with pineapple"
assert nrf.nutrients[0].id == 42
assert nrf.nutrients[0].id == "42"
assert nrf.nutrients[0].name == "Lactose"
assert nrf.nutrients[0].unit == "g"
assert nrf.nutrients[0].value == 26
assert nrf.nutrients[0].value == 26.0
assert len(nrf.nutrients[0].measures) == 1
assert nrf.nutrients[0].measures[0].label == "1.0 slice"
assert nrf.nutrients[0].measures[0].quantity == 6.9
assert nrf.nutrients[0].measures[0].gram_equivalent == 353.0
assert nrf.nutrients[0].measures[0].value == 26
assert nrf.nutrients[1].id == 1337
assert nrf.nutrients[0].measures[0].value == 26.0
assert nrf.nutrients[1].id == "1337"
assert nrf.nutrients[1].name == "Calcium"
assert nrf.nutrients[1].unit == "g"
assert nrf.nutrients[1].value == 4.87