/
tests.py
110 lines (81 loc) · 2.51 KB
/
tests.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
import os
import json
from config import basedir
from app import app, db, models, user_datastore
from app.models import *
from flask.ext.security import current_user
from flask.ext.security.utils import login_user
import unittest
from flask.ext.testing import TestCase
f = open('data/recipe.clean.json').read()
data = json.loads(f)
def add_if_not_exist(item, which):
if which == 'ingredients':
if db.session.query(models.Ingredient).filter_by(name=item).count() < 1:
i = models.Ingredient(name=item)
db.session.add(i)
return i
else:
return db.session.query(models.Ingredient).filter_by(name=item).first()
if which == 'modifier':
if db.session.query(models.Modifier).filter_by(name=item).count() < 1:
m = models.Modifier(name=item)
db.session.add(m)
return m
else:
return db.session.query(models.Modifier).filter_by(name=item).first()
class DatabaseTestCase(TestCase):
key = None
data = None
def create_app(self):
app.config['TESTING']
app.config['WTF_CSRF_ENABLED'] = False
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///' + os.path.join(basedir, 'test.db')
return app
def setUp(self):
db.create_all()
#Load in our test recipes.
for d in data:
title = d['title']
directions = d['directions']
ingredients = d['ingredients']
step_number = 1;
steps = ''
mis = []
for direction in directions:
steps = steps + str(step_number) + ': ' + direction + "\n"
step_number = step_number + 1
for ingredient in ingredients:
amount = ingredient['amount']
modifiers = ingredient['modifiers']
ing = ingredient['ingredient']
i = add_if_not_exist(ing, 'ingredients')
m = []
for mod in modifiers:
m.append(add_if_not_exist(mod, 'modifier'))
amount = amount.split(' ')
if(len(amount) > 2):
m.append(add_if_not_exist(" ".join(amount[2:]), 'modifier'))
if(len(amount) == 1):
amount.append('')
mi = models.ModifiedIngredient(amount=amount[0], unit=amount[1], ingredient=i.id, modifiers=m)
db.session.add(mi)
mis.append(mi)
def tearDown(self):
db.session.remove()
db.drop_all()
def test_retrieveRecipe(self):
with app.app_context():
request = self.client.get('/api/v1/recipes/1', data=dict(
key=app.config.API_KEY))
print(request.data)
assert(False)
assert(json.loads(str(request.data)) == data[0])
# def test_singleIngredient(self):
# assert(False)
# def test_twoIngredients(self):
# assert(False)
# def test_oneWithOneWithout(self):
# assert(False)
if __name__ == '__main__':
unittest.main()