def test_update_protected_fields(): diet = Diet.Diet() copy = dict(TEST_DIET_DATA) copy.update({ "user_id": "new user id", "diet_id": "new diet_id", "year": datetime.datetime.today().year - 1 }) res = diet.update(copy) assert res is None
def test_update_with_invalid_data_types(): diet = Diet.Diet() copy = dict(TEST_DIET_DATA) copy.update({ "calories": "this is a string", "notes": 100, "year": "this should be an int" }) res = diet.update(copy) assert res is None
def test_update_diet(): diet = Diet.Diet() copy = dict(TEST_DIET_DATA) copy.update({ "calories": 3000, "notes": "Updated notes section", "year": datetime.datetime.today().year - 1 }) res = diet.update(copy) assert res is not None and res == copy
def call_api(func_name): try: if func_name not in ENDPOINTS: message = "No such endpoint " + "'" + func_name + "'" return make_response({"message": message}, 404) model = Diet.Diet() # GET requests have no request bodies, so we must get data from the header if func_name == "get": user_id = request.headers.get("user_id") token = request.headers.get("token") return CONTROLLER.execute_model_logic(token, user_id, model, "get", dict(user_id=user_id)) request_body = request.get_json() params = CONTROLLER.deconstruct_request_body(request_body, model, func_name) params.update({"model": model, "function_name": func_name}) return CONTROLLER.execute_model_logic(**params) except Exception as e: print(e) return make_response({"message": "Internal Error: " + str(e)}, 500)
def test_delete(): diet = Diet.Diet() res = diet.delete(TEST_USER_DATA["user_id"], TEST_DIET_DATA["diet_id"]) actual = diet.get_one(TEST_DIET_DATA["diet_id"]) user.delete(TEST_USER_DATA["user_id"]) assert res == TEST_DIET_DATA["diet_id"] and actual is None
def test_get_many(): diet = Diet.Diet() res = diet.get(TEST_USER_DATA["user_id"]) assert res is not None and isinstance(res, list)
def test_get_one(): diet = Diet.Diet() res = diet.get_one(TEST_DIET_DATA["diet_id"]) assert res is not None
def test_create_diet(): diet = Diet.Diet() res = diet.create(TEST_USER_DATA["user_id"], TEST_DIET_DATA) print(res) TEST_DIET_DATA.update({"diet_id": res["diet_id"]}) assert res is not None
def test_instantiation(): diet = Diet.Diet() assert diet is not None
# Simple unit tests for Diet class from tests import TestAssertion from models import Diet from db import DbAccess db = DbAccess.DbAccess() test = TestAssertion.TestAssertion() test.print_test_name("Diet Object Tests") # Test 1: instantiation try: diet = Diet.Diet(db) test.assert_test_success("Instantiation") except Exception: test.assert_test_failure("Instantiation") # Test 2: get diet info try: diet = Diet.Diet(db) info = diet.get_user_diet_entry("u001", 16, 4, 2021) if info is None: raise Exception("No Diet Data Returned") print(str(info)) test.assert_test_success("Get Diet Entry") except Exception: test.assert_test_failure("Get Diet Entry") # Test 3: get user diet entries try: diet = Diet.Diet(db)
def __init__(self): self.__db = DbAccess.DbAccess() self.__diet = Diet.Diet(self.__db)