def test_access_unauthorized_method(self): headers = {} add_authorization_header(headers, self.roomies[0].login, self.roomies[0].password) status, data = self.client.request('HEAD', '/money', headers=headers) self.assertEqual(405, status) self.assertEqual(0, len(data))
def test_retrieve_nothing(self): headers = {} add_authorization_header(headers, self.roomies[0].login, self.roomies[0].password) status, data = self.client.request('GET', '/money', headers=headers) self.assertEqual(200, status) self.assertEqual('[]', data)
def test_get_user(self): headers = {} add_authorization_header(headers, self.roomies[0].login, self.roomies[0].password) status, data =\ self.client.request('GET', '/users/me', headers=headers) self.assertEqual(200, status) logged_user = \ json.loads(data , object_hook=User.from_json) self.assertEqual(self.roomies[0].user_id, logged_user.user_id)
def test_user_creation(self): # Log in as a user of houseshare id 1 and retrieve all the roomies # from this user's houseshare headers = {} add_authorization_header(headers, self.roomies[0].login, self.roomies[0].password) status, data = self.client.request('GET', '/users', headers=headers) self.assertEqual(200, status) users_list = \ json.loads(data, object_hook=User.from_json) # 3 users + admin self.assertEqual(4, len(users_list)) for user in users_list: self.assertEqual(self.houseshare_id, user.houseshare_id)
def test_unauthorized_delete(self): headers = {} add_authorization_header(headers, self.roomies[0].login, self.roomies[0].password) # Nothing to delete => 404 status, _ =\ self.client.request('DELETE', '/money/{}'.format(12), headers=headers) self.assertEqual(404, status) # Rotten request status, _ =\ self.client.request('DELETE', '/money/{}'.format("wrong"), headers=headers) self.assertEqual(400, status) new_expense = create_expense() new_expense_str = json.dumps(new_expense) status, data =\ self.client.request('POST', '/money', new_expense_str, headers=headers) self.assertEqual(200, status) retrieved_expense = json.loads(data) # An other roomie tries to erase an expense not belonging to himself add_authorization_header(headers, self.roomies[1].login, self.roomies[1].password) status, _ =\ self.client.request('DELETE', '/money/{}'.format(retrieved_expense["id"]), headers=headers) self.assertEqual(403, status)
def test_create_delete(self): new_expense = create_expense() new_expense_str = json.dumps(new_expense) headers = {} add_authorization_header(headers, self.roomies[0].login, self.roomies[0].password) # Inserting a new expense status, data =\ self.client.request('POST', '/money', new_expense_str, headers=headers) self.assertEqual(200, status) self.assertTrue(len(data) > 0) inserted_expense = json.loads(data) self.assertEqual(new_expense['date'], inserted_expense['date']) # Retrieve a list of the expense by the user who created the expense status, data = self.client.request('GET', '/money', headers=headers) self.assertEqual(200, status) self.assertTrue(len(data) > 0) retrieved_expense = json.loads(data) self.assertEqual(1, len(retrieved_expense)) # Retrieve a list of expenses from another user belonging to the same # houseshare => same behaviour as in the previous example add_authorization_header(headers, self.roomies[1].login, self.roomies[1].password) status, data = self.client.request('GET', '/money', headers=headers) self.assertEqual(200, status) self.assertTrue(len(data) > 0) retrieved_expense = json.loads(data) self.assertEqual(1, len(retrieved_expense)) # Delete the expense add_authorization_header(headers, self.roomies[0].login, self.roomies[0].password) status, data =\ self.client.request('DELETE', '/money/{}'.format(retrieved_expense[0]["id"]), headers=headers) self.assertEqual(200, status) self.assertEqual(0, len(data)) # Check there is no expense at the end of this test status, data = self.client.request('GET', '/money', headers=headers) self.assertEqual(200, status) self.assertEqual("[]", data)