mirror of
https://github.com/spiral-project/ihatemoney.git
synced 2025-05-05 20:51:49 +02:00
pep8ify the tests
This commit is contained in:
parent
ff018bd0c8
commit
e70bd029b4
1 changed files with 62 additions and 59 deletions
|
@ -58,7 +58,7 @@ class TestCase(unittest.TestCase):
|
||||||
"""Create a fake project"""
|
"""Create a fake project"""
|
||||||
# create the project
|
# create the project
|
||||||
self.app.post("/create", data={
|
self.app.post("/create", data={
|
||||||
'name': name,
|
'name': name,
|
||||||
'id': name,
|
'id': name,
|
||||||
'password': name,
|
'password': name,
|
||||||
'contact_email': '%s@notmyidea.org' % name
|
'contact_email': '%s@notmyidea.org' % name
|
||||||
|
@ -66,7 +66,7 @@ class TestCase(unittest.TestCase):
|
||||||
|
|
||||||
def create_project(self, name):
|
def create_project(self, name):
|
||||||
models.db.session.add(models.Project(id=name, name=six.text_type(name),
|
models.db.session.add(models.Project(id=name, name=six.text_type(name),
|
||||||
password=name, contact_email="%s@notmyidea.org" % name))
|
password=name, contact_email="%s@notmyidea.org" % name))
|
||||||
models.db.session.commit()
|
models.db.session.commit()
|
||||||
|
|
||||||
|
|
||||||
|
@ -127,12 +127,12 @@ class BudgetTestCase(TestCase):
|
||||||
# sending a message to multiple persons
|
# sending a message to multiple persons
|
||||||
with run.mail.record_messages() as outbox:
|
with run.mail.record_messages() as outbox:
|
||||||
self.app.post("/raclette/invite",
|
self.app.post("/raclette/invite",
|
||||||
data={"emails": 'alexis@notmyidea.org, toto@notmyidea.org'})
|
data={"emails": 'alexis@notmyidea.org, toto@notmyidea.org'})
|
||||||
|
|
||||||
# only one message is sent to multiple persons
|
# only one message is sent to multiple persons
|
||||||
self.assertEqual(len(outbox), 1)
|
self.assertEqual(len(outbox), 1)
|
||||||
self.assertEqual(outbox[0].recipients,
|
self.assertEqual(outbox[0].recipients,
|
||||||
["alexis@notmyidea.org", "toto@notmyidea.org"])
|
["alexis@notmyidea.org", "toto@notmyidea.org"])
|
||||||
|
|
||||||
# mail address checking
|
# mail address checking
|
||||||
with run.mail.record_messages() as outbox:
|
with run.mail.record_messages() as outbox:
|
||||||
|
@ -144,7 +144,7 @@ class BudgetTestCase(TestCase):
|
||||||
# mixing good and wrong adresses shouldn't send any messages
|
# mixing good and wrong adresses shouldn't send any messages
|
||||||
with run.mail.record_messages() as outbox:
|
with run.mail.record_messages() as outbox:
|
||||||
self.app.post("/raclette/invite",
|
self.app.post("/raclette/invite",
|
||||||
data={"emails": 'alexis@notmyidea.org, alexis'}) # not valid
|
data={"emails": 'alexis@notmyidea.org, alexis'}) # not valid
|
||||||
|
|
||||||
# only one message is sent to multiple persons
|
# only one message is sent to multiple persons
|
||||||
self.assertEqual(len(outbox), 0)
|
self.assertEqual(len(outbox), 0)
|
||||||
|
@ -239,7 +239,7 @@ class BudgetTestCase(TestCase):
|
||||||
|
|
||||||
# remove fred
|
# remove fred
|
||||||
self.app.post("/raclette/members/%s/delete" %
|
self.app.post("/raclette/members/%s/delete" %
|
||||||
models.Project.query.get("raclette").members[-1].id)
|
models.Project.query.get("raclette").members[-1].id)
|
||||||
|
|
||||||
# as fred is not bound to any bill, he is removed
|
# as fred is not bound to any bill, he is removed
|
||||||
self.assertEqual(len(models.Project.query.get("raclette").members), 1)
|
self.assertEqual(len(models.Project.query.get("raclette").members), 1)
|
||||||
|
@ -263,7 +263,7 @@ class BudgetTestCase(TestCase):
|
||||||
# he is still in the database, but is deactivated
|
# he is still in the database, but is deactivated
|
||||||
self.assertEqual(len(models.Project.query.get("raclette").members), 2)
|
self.assertEqual(len(models.Project.query.get("raclette").members), 2)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
len(models.Project.query.get("raclette").active_members), 1)
|
len(models.Project.query.get("raclette").active_members), 1)
|
||||||
|
|
||||||
# as fred is now deactivated, check that he is not listed when adding
|
# as fred is now deactivated, check that he is not listed when adding
|
||||||
# a bill or displaying the balance
|
# a bill or displaying the balance
|
||||||
|
@ -276,7 +276,7 @@ class BudgetTestCase(TestCase):
|
||||||
# adding him again should reactivate him
|
# adding him again should reactivate him
|
||||||
self.app.post("/raclette/members/add", data={'name': 'fred'})
|
self.app.post("/raclette/members/add", data={'name': 'fred'})
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
len(models.Project.query.get("raclette").active_members), 2)
|
len(models.Project.query.get("raclette").active_members), 2)
|
||||||
|
|
||||||
# adding an user with the same name as another user from a different
|
# adding an user with the same name as another user from a different
|
||||||
# project should not cause any troubles
|
# project should not cause any troubles
|
||||||
|
@ -284,7 +284,7 @@ class BudgetTestCase(TestCase):
|
||||||
self.login("randomid")
|
self.login("randomid")
|
||||||
self.app.post("/randomid/members/add", data={'name': 'fred'})
|
self.app.post("/randomid/members/add", data={'name': 'fred'})
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
len(models.Project.query.get("randomid").active_members), 1)
|
len(models.Project.query.get("randomid").active_members), 1)
|
||||||
|
|
||||||
def test_person_model(self):
|
def test_person_model(self):
|
||||||
self.post_project("raclette")
|
self.post_project("raclette")
|
||||||
|
@ -321,11 +321,11 @@ class BudgetTestCase(TestCase):
|
||||||
response = self.app.get("/raclette/members/1/delete")
|
response = self.app.get("/raclette/members/1/delete")
|
||||||
self.assertEqual(response.status_code, 405)
|
self.assertEqual(response.status_code, 405)
|
||||||
|
|
||||||
#delete user using POST method
|
# delete user using POST method
|
||||||
self.app.post("/raclette/members/1/delete")
|
self.app.post("/raclette/members/1/delete")
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
len(models.Project.query.get("raclette").active_members), 0)
|
len(models.Project.query.get("raclette").active_members), 0)
|
||||||
#try to delete an user already deleted
|
# try to delete an user already deleted
|
||||||
self.app.post("/raclette/members/1/delete")
|
self.app.post("/raclette/members/1/delete")
|
||||||
|
|
||||||
def test_demo(self):
|
def test_demo(self):
|
||||||
|
@ -358,7 +358,7 @@ class BudgetTestCase(TestCase):
|
||||||
# try to connect with wrong credentials should not work
|
# try to connect with wrong credentials should not work
|
||||||
with run.app.test_client() as c:
|
with run.app.test_client() as c:
|
||||||
resp = c.post("/authenticate",
|
resp = c.post("/authenticate",
|
||||||
data={'id': 'raclette', 'password': 'nope'})
|
data={'id': 'raclette', 'password': 'nope'})
|
||||||
|
|
||||||
self.assertIn("Authentication", resp.data.decode('utf-8'))
|
self.assertIn("Authentication", resp.data.decode('utf-8'))
|
||||||
self.assertNotIn('raclette', session)
|
self.assertNotIn('raclette', session)
|
||||||
|
@ -366,7 +366,7 @@ class BudgetTestCase(TestCase):
|
||||||
# try to connect with the right credentials should work
|
# try to connect with the right credentials should work
|
||||||
with run.app.test_client() as c:
|
with run.app.test_client() as c:
|
||||||
resp = c.post("/authenticate",
|
resp = c.post("/authenticate",
|
||||||
data={'id': 'raclette', 'password': 'raclette'})
|
data={'id': 'raclette', 'password': 'raclette'})
|
||||||
|
|
||||||
self.assertNotIn("Authentication", resp.data.decode('utf-8'))
|
self.assertNotIn("Authentication", resp.data.decode('utf-8'))
|
||||||
self.assertIn('raclette', session)
|
self.assertIn('raclette', session)
|
||||||
|
@ -461,7 +461,7 @@ class BudgetTestCase(TestCase):
|
||||||
balance = models.Project.query.get("raclette").balance
|
balance = models.Project.query.get("raclette").balance
|
||||||
self.assertEqual(set(balance.values()), set([19.0, -19.0]))
|
self.assertEqual(set(balance.values()), set([19.0, -19.0]))
|
||||||
|
|
||||||
#Bill with negative amount
|
# Bill with negative amount
|
||||||
self.app.post("/raclette/add", data={
|
self.app.post("/raclette/add", data={
|
||||||
'date': '2011-08-12',
|
'date': '2011-08-12',
|
||||||
'what': 'fromage à raclette',
|
'what': 'fromage à raclette',
|
||||||
|
@ -472,7 +472,7 @@ class BudgetTestCase(TestCase):
|
||||||
bill = models.Bill.query.filter(models.Bill.date == '2011-08-12')[0]
|
bill = models.Bill.query.filter(models.Bill.date == '2011-08-12')[0]
|
||||||
self.assertEqual(bill.amount, -25)
|
self.assertEqual(bill.amount, -25)
|
||||||
|
|
||||||
#add a bill with a comma
|
# add a bill with a comma
|
||||||
self.app.post("/raclette/add", data={
|
self.app.post("/raclette/add", data={
|
||||||
'date': '2011-08-01',
|
'date': '2011-08-01',
|
||||||
'what': 'fromage à raclette',
|
'what': 'fromage à raclette',
|
||||||
|
@ -520,15 +520,14 @@ class BudgetTestCase(TestCase):
|
||||||
self.app.post("/raclette/members/add", data={'name': 'alexis'})
|
self.app.post("/raclette/members/add", data={'name': 'alexis'})
|
||||||
self.app.post("/raclette/members/add", data={'name': 'tata', 'weight': 1})
|
self.app.post("/raclette/members/add", data={'name': 'tata', 'weight': 1})
|
||||||
|
|
||||||
resp = self.app.get("/raclette/")
|
resp = self.app.get("/raclette/")
|
||||||
self.assertIn('extra-info', resp.data.decode('utf-8'))
|
self.assertIn('extra-info', resp.data.decode('utf-8'))
|
||||||
|
|
||||||
self.app.post("/raclette/members/add", data={'name': 'freddy familly', 'weight': 4})
|
self.app.post("/raclette/members/add", data={'name': 'freddy familly', 'weight': 4})
|
||||||
|
|
||||||
resp = self.app.get("/raclette/")
|
resp = self.app.get("/raclette/")
|
||||||
self.assertNotIn('extra-info', resp.data.decode('utf-8'))
|
self.assertNotIn('extra-info', resp.data.decode('utf-8'))
|
||||||
|
|
||||||
|
|
||||||
def test_rounding(self):
|
def test_rounding(self):
|
||||||
self.post_project("raclette")
|
self.post_project("raclette")
|
||||||
|
|
||||||
|
@ -568,7 +567,8 @@ class BudgetTestCase(TestCase):
|
||||||
result[models.Project.query.get("raclette").members[1].id] = 0.0
|
result[models.Project.query.get("raclette").members[1].id] = 0.0
|
||||||
result[models.Project.query.get("raclette").members[2].id] = -8.12
|
result[models.Project.query.get("raclette").members[2].id] = -8.12
|
||||||
# Since we're using floating point to store currency, we can have some rounding issues that prevent test from working.
|
# Since we're using floating point to store currency, we can have some rounding issues that prevent test from working.
|
||||||
# However, we should obtain the same values as the theorical ones if we round to 2 decimals, like in the UI.
|
# However, we should obtain the same values as the theorical ones if we
|
||||||
|
# round to 2 decimals, like in the UI.
|
||||||
for key, value in six.iteritems(balance):
|
for key, value in six.iteritems(balance):
|
||||||
self.assertEqual(round(value, 2), result[key])
|
self.assertEqual(round(value, 2), result[key])
|
||||||
|
|
||||||
|
@ -583,7 +583,7 @@ class BudgetTestCase(TestCase):
|
||||||
}
|
}
|
||||||
|
|
||||||
resp = self.app.post("/raclette/edit", data=new_data,
|
resp = self.app.post("/raclette/edit", data=new_data,
|
||||||
follow_redirects=True)
|
follow_redirects=True)
|
||||||
self.assertEqual(resp.status_code, 200)
|
self.assertEqual(resp.status_code, 200)
|
||||||
project = models.Project.query.get("raclette")
|
project = models.Project.query.get("raclette")
|
||||||
|
|
||||||
|
@ -594,7 +594,7 @@ class BudgetTestCase(TestCase):
|
||||||
new_data['contact_email'] = 'wrong_email'
|
new_data['contact_email'] = 'wrong_email'
|
||||||
|
|
||||||
resp = self.app.post("/raclette/edit", data=new_data,
|
resp = self.app.post("/raclette/edit", data=new_data,
|
||||||
follow_redirects=True)
|
follow_redirects=True)
|
||||||
self.assertIn("Invalid email address", resp.data.decode('utf-8'))
|
self.assertIn("Invalid email address", resp.data.decode('utf-8'))
|
||||||
|
|
||||||
def test_dashboard(self):
|
def test_dashboard(self):
|
||||||
|
@ -613,7 +613,7 @@ class BudgetTestCase(TestCase):
|
||||||
self.app.post("/raclette/members/add", data={'name': 'alexis'})
|
self.app.post("/raclette/members/add", data={'name': 'alexis'})
|
||||||
self.app.post("/raclette/members/add", data={'name': 'fred'})
|
self.app.post("/raclette/members/add", data={'name': 'fred'})
|
||||||
self.app.post("/raclette/members/add", data={'name': 'tata'})
|
self.app.post("/raclette/members/add", data={'name': 'tata'})
|
||||||
#Add a member with a balance=0 :
|
# Add a member with a balance=0 :
|
||||||
self.app.post("/raclette/members/add", data={'name': 'toto'})
|
self.app.post("/raclette/members/add", data={'name': 'toto'})
|
||||||
|
|
||||||
# create bills
|
# create bills
|
||||||
|
@ -640,13 +640,13 @@ class BudgetTestCase(TestCase):
|
||||||
'payed_for': [1, 2],
|
'payed_for': [1, 2],
|
||||||
'amount': '10',
|
'amount': '10',
|
||||||
})
|
})
|
||||||
project = models.Project.query.get('raclette')
|
project = models.Project.query.get('raclette')
|
||||||
transactions = project.get_transactions_to_settle_bill()
|
transactions = project.get_transactions_to_settle_bill()
|
||||||
members = defaultdict(int)
|
members = defaultdict(int)
|
||||||
#We should have the same values between transactions and project balances
|
# We should have the same values between transactions and project balances
|
||||||
for t in transactions:
|
for t in transactions:
|
||||||
members[t['ower']]-=t['amount']
|
members[t['ower']] -= t['amount']
|
||||||
members[t['receiver']]+=t['amount']
|
members[t['receiver']] += t['amount']
|
||||||
balance = models.Project.query.get("raclette").balance
|
balance = models.Project.query.get("raclette").balance
|
||||||
for m, a in members.items():
|
for m, a in members.items():
|
||||||
self.assertEqual(a, balance[m.id])
|
self.assertEqual(a, balance[m.id])
|
||||||
|
@ -684,7 +684,7 @@ class BudgetTestCase(TestCase):
|
||||||
'payed_for': [2],
|
'payed_for': [2],
|
||||||
'amount': '13.33',
|
'amount': '13.33',
|
||||||
})
|
})
|
||||||
project = models.Project.query.get('raclette')
|
project = models.Project.query.get('raclette')
|
||||||
transactions = project.get_transactions_to_settle_bill()
|
transactions = project.get_transactions_to_settle_bill()
|
||||||
members = defaultdict(int)
|
members = defaultdict(int)
|
||||||
# There should not be any zero-amount transfer after rounding
|
# There should not be any zero-amount transfer after rounding
|
||||||
|
@ -805,6 +805,7 @@ class BudgetTestCase(TestCase):
|
||||||
|
|
||||||
|
|
||||||
class APITestCase(TestCase):
|
class APITestCase(TestCase):
|
||||||
|
|
||||||
"""Tests the API"""
|
"""Tests the API"""
|
||||||
|
|
||||||
def api_create(self, name, id=None, password=None, contact=None):
|
def api_create(self, name, id=None, password=None, contact=None):
|
||||||
|
@ -833,7 +834,7 @@ class APITestCase(TestCase):
|
||||||
def assertStatus(self, expected, resp, url=""):
|
def assertStatus(self, expected, resp, url=""):
|
||||||
|
|
||||||
return self.assertEqual(expected, resp.status_code,
|
return self.assertEqual(expected, resp.status_code,
|
||||||
"%s expected %s, got %s" % (url, expected, resp.status_code))
|
"%s expected %s, got %s" % (url, expected, resp.status_code))
|
||||||
|
|
||||||
def test_basic_auth(self):
|
def test_basic_auth(self):
|
||||||
# create a project
|
# create a project
|
||||||
|
@ -850,15 +851,15 @@ class APITestCase(TestCase):
|
||||||
for resource in ("/raclette/members", "/raclette/bills"):
|
for resource in ("/raclette/members", "/raclette/bills"):
|
||||||
url = "/api/projects" + resource
|
url = "/api/projects" + resource
|
||||||
self.assertStatus(401, getattr(self.app, verb)(url),
|
self.assertStatus(401, getattr(self.app, verb)(url),
|
||||||
verb + resource)
|
verb + resource)
|
||||||
|
|
||||||
for verb in ('get', 'delete', 'put'):
|
for verb in ('get', 'delete', 'put'):
|
||||||
for resource in ("/raclette", "/raclette/members/1",
|
for resource in ("/raclette", "/raclette/members/1",
|
||||||
"/raclette/bills/1"):
|
"/raclette/bills/1"):
|
||||||
url = "/api/projects" + resource
|
url = "/api/projects" + resource
|
||||||
|
|
||||||
self.assertStatus(401, getattr(self.app, verb)(url),
|
self.assertStatus(401, getattr(self.app, verb)(url),
|
||||||
verb + resource)
|
verb + resource)
|
||||||
|
|
||||||
def test_project(self):
|
def test_project(self):
|
||||||
# wrong email should return an error
|
# wrong email should return an error
|
||||||
|
@ -885,7 +886,7 @@ class APITestCase(TestCase):
|
||||||
|
|
||||||
# get information about it
|
# get information about it
|
||||||
resp = self.app.get("/api/projects/raclette",
|
resp = self.app.get("/api/projects/raclette",
|
||||||
headers=self.get_auth("raclette"))
|
headers=self.get_auth("raclette"))
|
||||||
|
|
||||||
self.assertTrue(200, resp.status_code)
|
self.assertTrue(200, resp.status_code)
|
||||||
expected = {
|
expected = {
|
||||||
|
@ -904,12 +905,12 @@ class APITestCase(TestCase):
|
||||||
"contact_email": "yeah@notmyidea.org",
|
"contact_email": "yeah@notmyidea.org",
|
||||||
"password": "raclette",
|
"password": "raclette",
|
||||||
"name": "The raclette party",
|
"name": "The raclette party",
|
||||||
}, headers=self.get_auth("raclette"))
|
}, headers=self.get_auth("raclette"))
|
||||||
|
|
||||||
self.assertEqual(200, resp.status_code)
|
self.assertEqual(200, resp.status_code)
|
||||||
|
|
||||||
resp = self.app.get("/api/projects/raclette",
|
resp = self.app.get("/api/projects/raclette",
|
||||||
headers=self.get_auth("raclette"))
|
headers=self.get_auth("raclette"))
|
||||||
|
|
||||||
self.assertEqual(200, resp.status_code)
|
self.assertEqual(200, resp.status_code)
|
||||||
expected = {
|
expected = {
|
||||||
|
@ -925,13 +926,13 @@ class APITestCase(TestCase):
|
||||||
|
|
||||||
# delete should work
|
# delete should work
|
||||||
resp = self.app.delete("/api/projects/raclette",
|
resp = self.app.delete("/api/projects/raclette",
|
||||||
headers=self.get_auth("raclette"))
|
headers=self.get_auth("raclette"))
|
||||||
|
|
||||||
self.assertEqual(200, resp.status_code)
|
self.assertEqual(200, resp.status_code)
|
||||||
|
|
||||||
# get should return a 401 on an unknown resource
|
# get should return a 401 on an unknown resource
|
||||||
resp = self.app.get("/api/projects/raclette",
|
resp = self.app.get("/api/projects/raclette",
|
||||||
headers=self.get_auth("raclette"))
|
headers=self.get_auth("raclette"))
|
||||||
self.assertEqual(401, resp.status_code)
|
self.assertEqual(401, resp.status_code)
|
||||||
|
|
||||||
def test_member(self):
|
def test_member(self):
|
||||||
|
@ -940,15 +941,15 @@ class APITestCase(TestCase):
|
||||||
|
|
||||||
# get the list of members (should be empty)
|
# get the list of members (should be empty)
|
||||||
req = self.app.get("/api/projects/raclette/members",
|
req = self.app.get("/api/projects/raclette/members",
|
||||||
headers=self.get_auth("raclette"))
|
headers=self.get_auth("raclette"))
|
||||||
|
|
||||||
self.assertStatus(200, req)
|
self.assertStatus(200, req)
|
||||||
self.assertEqual('[]', req.data.decode('utf-8'))
|
self.assertEqual('[]', req.data.decode('utf-8'))
|
||||||
|
|
||||||
# add a member
|
# add a member
|
||||||
req = self.app.post("/api/projects/raclette/members", data={
|
req = self.app.post("/api/projects/raclette/members", data={
|
||||||
"name": "Alexis"
|
"name": "Alexis"
|
||||||
}, headers=self.get_auth("raclette"))
|
}, headers=self.get_auth("raclette"))
|
||||||
|
|
||||||
# the id of the new member should be returned
|
# the id of the new member should be returned
|
||||||
self.assertStatus(201, req)
|
self.assertStatus(201, req)
|
||||||
|
@ -956,21 +957,21 @@ class APITestCase(TestCase):
|
||||||
|
|
||||||
# the list of members should contain one member
|
# the list of members should contain one member
|
||||||
req = self.app.get("/api/projects/raclette/members",
|
req = self.app.get("/api/projects/raclette/members",
|
||||||
headers=self.get_auth("raclette"))
|
headers=self.get_auth("raclette"))
|
||||||
|
|
||||||
self.assertStatus(200, req)
|
self.assertStatus(200, req)
|
||||||
self.assertEqual(len(json.loads(req.data.decode('utf-8'))), 1)
|
self.assertEqual(len(json.loads(req.data.decode('utf-8'))), 1)
|
||||||
|
|
||||||
# edit this member
|
# edit this member
|
||||||
req = self.app.put("/api/projects/raclette/members/1", data={
|
req = self.app.put("/api/projects/raclette/members/1", data={
|
||||||
"name": "Fred"
|
"name": "Fred"
|
||||||
}, headers=self.get_auth("raclette"))
|
}, headers=self.get_auth("raclette"))
|
||||||
|
|
||||||
self.assertStatus(200, req)
|
self.assertStatus(200, req)
|
||||||
|
|
||||||
# get should return the new name
|
# get should return the new name
|
||||||
req = self.app.get("/api/projects/raclette/members/1",
|
req = self.app.get("/api/projects/raclette/members/1",
|
||||||
headers=self.get_auth("raclette"))
|
headers=self.get_auth("raclette"))
|
||||||
|
|
||||||
self.assertStatus(200, req)
|
self.assertStatus(200, req)
|
||||||
self.assertEqual("Fred", json.loads(req.data.decode('utf-8'))["name"])
|
self.assertEqual("Fred", json.loads(req.data.decode('utf-8'))["name"])
|
||||||
|
@ -978,14 +979,14 @@ class APITestCase(TestCase):
|
||||||
# delete a member
|
# delete a member
|
||||||
|
|
||||||
req = self.app.delete("/api/projects/raclette/members/1",
|
req = self.app.delete("/api/projects/raclette/members/1",
|
||||||
headers=self.get_auth("raclette"))
|
headers=self.get_auth("raclette"))
|
||||||
|
|
||||||
self.assertStatus(200, req)
|
self.assertStatus(200, req)
|
||||||
|
|
||||||
# the list of members should be empty
|
# the list of members should be empty
|
||||||
# get the list of members (should be empty)
|
# get the list of members (should be empty)
|
||||||
req = self.app.get("/api/projects/raclette/members",
|
req = self.app.get("/api/projects/raclette/members",
|
||||||
headers=self.get_auth("raclette"))
|
headers=self.get_auth("raclette"))
|
||||||
|
|
||||||
self.assertStatus(200, req)
|
self.assertStatus(200, req)
|
||||||
self.assertEqual('[]', req.data.decode('utf-8'))
|
self.assertEqual('[]', req.data.decode('utf-8'))
|
||||||
|
@ -1001,7 +1002,7 @@ class APITestCase(TestCase):
|
||||||
|
|
||||||
# get the list of bills (should be empty)
|
# get the list of bills (should be empty)
|
||||||
req = self.app.get("/api/projects/raclette/bills",
|
req = self.app.get("/api/projects/raclette/bills",
|
||||||
headers=self.get_auth("raclette"))
|
headers=self.get_auth("raclette"))
|
||||||
self.assertStatus(200, req)
|
self.assertStatus(200, req)
|
||||||
|
|
||||||
self.assertEqual("[]", req.data.decode('utf-8'))
|
self.assertEqual("[]", req.data.decode('utf-8'))
|
||||||
|
@ -1013,7 +1014,7 @@ class APITestCase(TestCase):
|
||||||
'payer': "1",
|
'payer': "1",
|
||||||
'payed_for': ["1", "2"],
|
'payed_for': ["1", "2"],
|
||||||
'amount': '25',
|
'amount': '25',
|
||||||
}, headers=self.get_auth("raclette"))
|
}, headers=self.get_auth("raclette"))
|
||||||
|
|
||||||
# should return the id
|
# should return the id
|
||||||
self.assertStatus(201, req)
|
self.assertStatus(201, req)
|
||||||
|
@ -1021,7 +1022,7 @@ class APITestCase(TestCase):
|
||||||
|
|
||||||
# get this bill details
|
# get this bill details
|
||||||
req = self.app.get("/api/projects/raclette/bills/1",
|
req = self.app.get("/api/projects/raclette/bills/1",
|
||||||
headers=self.get_auth("raclette"))
|
headers=self.get_auth("raclette"))
|
||||||
|
|
||||||
# compare with the added info
|
# compare with the added info
|
||||||
self.assertStatus(200, req)
|
self.assertStatus(200, req)
|
||||||
|
@ -1039,7 +1040,7 @@ class APITestCase(TestCase):
|
||||||
|
|
||||||
# the list of bills should lenght 1
|
# the list of bills should lenght 1
|
||||||
req = self.app.get("/api/projects/raclette/bills",
|
req = self.app.get("/api/projects/raclette/bills",
|
||||||
headers=self.get_auth("raclette"))
|
headers=self.get_auth("raclette"))
|
||||||
self.assertStatus(200, req)
|
self.assertStatus(200, req)
|
||||||
self.assertEqual(1, len(json.loads(req.data.decode('utf-8'))))
|
self.assertEqual(1, len(json.loads(req.data.decode('utf-8'))))
|
||||||
|
|
||||||
|
@ -1050,7 +1051,7 @@ class APITestCase(TestCase):
|
||||||
'payer': "1",
|
'payer': "1",
|
||||||
'payed_for': ["1", "2"],
|
'payed_for': ["1", "2"],
|
||||||
'amount': '25',
|
'amount': '25',
|
||||||
}, headers=self.get_auth("raclette"))
|
}, headers=self.get_auth("raclette"))
|
||||||
|
|
||||||
self.assertStatus(400, req)
|
self.assertStatus(400, req)
|
||||||
self.assertEqual('{"date": ["This field is required."]}', req.data.decode('utf-8'))
|
self.assertEqual('{"date": ["This field is required."]}', req.data.decode('utf-8'))
|
||||||
|
@ -1062,11 +1063,11 @@ class APITestCase(TestCase):
|
||||||
'payer': "2",
|
'payer': "2",
|
||||||
'payed_for': ["1", "2"],
|
'payed_for': ["1", "2"],
|
||||||
'amount': '25',
|
'amount': '25',
|
||||||
}, headers=self.get_auth("raclette"))
|
}, headers=self.get_auth("raclette"))
|
||||||
|
|
||||||
# check its fields
|
# check its fields
|
||||||
req = self.app.get("/api/projects/raclette/bills/1",
|
req = self.app.get("/api/projects/raclette/bills/1",
|
||||||
headers=self.get_auth("raclette"))
|
headers=self.get_auth("raclette"))
|
||||||
|
|
||||||
expected = {
|
expected = {
|
||||||
"what": "beer",
|
"what": "beer",
|
||||||
|
@ -1082,17 +1083,17 @@ class APITestCase(TestCase):
|
||||||
|
|
||||||
# delete a bill
|
# delete a bill
|
||||||
req = self.app.delete("/api/projects/raclette/bills/1",
|
req = self.app.delete("/api/projects/raclette/bills/1",
|
||||||
headers=self.get_auth("raclette"))
|
headers=self.get_auth("raclette"))
|
||||||
self.assertStatus(200, req)
|
self.assertStatus(200, req)
|
||||||
|
|
||||||
# getting it should return a 404
|
# getting it should return a 404
|
||||||
req = self.app.get("/api/projects/raclette/bills/1",
|
req = self.app.get("/api/projects/raclette/bills/1",
|
||||||
headers=self.get_auth("raclette"))
|
headers=self.get_auth("raclette"))
|
||||||
self.assertStatus(404, req)
|
self.assertStatus(404, req)
|
||||||
|
|
||||||
def test_username_xss(self):
|
def test_username_xss(self):
|
||||||
# create a project
|
# create a project
|
||||||
#self.api_create("raclette")
|
# self.api_create("raclette")
|
||||||
self.post_project("raclette")
|
self.post_project("raclette")
|
||||||
self.login("raclette")
|
self.login("raclette")
|
||||||
|
|
||||||
|
@ -1118,11 +1119,11 @@ class APITestCase(TestCase):
|
||||||
'payer': "1",
|
'payer': "1",
|
||||||
'payed_for': ["1", "2"],
|
'payed_for': ["1", "2"],
|
||||||
'amount': '25',
|
'amount': '25',
|
||||||
}, headers=self.get_auth("raclette"))
|
}, headers=self.get_auth("raclette"))
|
||||||
|
|
||||||
# get this bill details
|
# get this bill details
|
||||||
req = self.app.get("/api/projects/raclette/bills/1",
|
req = self.app.get("/api/projects/raclette/bills/1",
|
||||||
headers=self.get_auth("raclette"))
|
headers=self.get_auth("raclette"))
|
||||||
|
|
||||||
# compare with the added info
|
# compare with the added info
|
||||||
self.assertStatus(200, req)
|
self.assertStatus(200, req)
|
||||||
|
@ -1139,7 +1140,7 @@ class APITestCase(TestCase):
|
||||||
|
|
||||||
# getting it should return a 404
|
# getting it should return a 404
|
||||||
req = self.app.get("/api/projects/raclette",
|
req = self.app.get("/api/projects/raclette",
|
||||||
headers=self.get_auth("raclette"))
|
headers=self.get_auth("raclette"))
|
||||||
|
|
||||||
expected = {
|
expected = {
|
||||||
"active_members": [
|
"active_members": [
|
||||||
|
@ -1162,7 +1163,9 @@ class APITestCase(TestCase):
|
||||||
self.assertStatus(200, req)
|
self.assertStatus(200, req)
|
||||||
self.assertEqual(expected, json.loads(req.data.decode('utf-8')))
|
self.assertEqual(expected, json.loads(req.data.decode('utf-8')))
|
||||||
|
|
||||||
|
|
||||||
class ServerTestCase(APITestCase):
|
class ServerTestCase(APITestCase):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
run.configure()
|
run.configure()
|
||||||
super(ServerTestCase, self).setUp()
|
super(ServerTestCase, self).setUp()
|
||||||
|
|
Loading…
Reference in a new issue