Created
September 25, 2020 03:06
-
-
Save thanakijwanavit/694f11f197b1be268cc0d514b8ade606 to your computer and use it in GitHub Desktop.
expense transaction for hatari-expense-app
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| def helpme(): | |
| print('help') | |
| # unit test function | |
| def testAddTransaction(testData, expectedResponse): | |
| result = addTransaction(testData, '') | |
| # check if status code is the same | |
| assert result['statusCode'] == expectedResponse['statusCode'], f"status code is incorrect, it should be {expectedResponse['statusCode']}, {result}" | |
| # check if transaction id is the same | |
| if result.get('transactionId'): | |
| assert result['transactionId'] == expectedResponse['transactionId'], f"transaction id should be {expectedResponse['transactionId']}, {result}" | |
| print('congratulation, you have passed the test') | |
| return result | |
| def testAddCases(addTestDatas:list , addExpectedResponses:list ): | |
| for testData, expectedResponse in zip(addTestDatas, addExpectedResponses): | |
| response = testAddTransaction(testData, expectedResponse) | |
| print(response) | |
| addTestDatas = [ | |
| { | |
| "timestamp" : 249816953, | |
| "transactionId" : "osdifhso39019k", | |
| "details": "test object", | |
| "purpose": "for testing", | |
| "paid": True | |
| }, | |
| { | |
| "timestamp" : 249816953, | |
| "details": "test object", | |
| "purpose": "for testing" | |
| } | |
| ] | |
| addExpectedResponses = [ | |
| { | |
| "statusCode": 200, | |
| "transactionId" : "osdifhso39019k" | |
| }, | |
| { | |
| "statusCode": 400, | |
| "messge": "missing transactionsID" | |
| } | |
| ] | |
| def testRemoveTransaction(testData, expectedResponse,add): | |
| if add: | |
| addTableResult=addTransaction(testData,'') | |
| print(addTableResult) | |
| ''' test removing transactions''' | |
| result = removeTransaction(testData, '') | |
| # test cases | |
| assert result['statusCode'] == expectedResponse['statusCode'], f'status code should be {expectedResponse["statusCode"]}, {result}' | |
| # if result['transactionId']: | |
| # assert result['transactionId'] == expectedResponse['transactionId'], f'transaction id should be {expectedResponse["transactionId"]}' | |
| if result['message']: | |
| assert result['message'] == expectedResponse['message'], f'message should be {expectedResponse["message"]}' | |
| print('congrats, you have passed the unit test') | |
| return result | |
| def testRemoveCases(removeTestDatas, removeExpectedResponses): | |
| '''test each case of remove transaction''' | |
| results = [] | |
| for testData, expectedResponse in zip(removeTestDatas, removeExpectedResponses): | |
| results.append(testRemoveTransaction(testData, expectedResponse,testData['add'])) | |
| return results | |
| removeTestDatas=[ | |
| { | |
| "timestamp" : 249816953, | |
| "details": "test object", | |
| "purpose": "for testing", | |
| "paid": True, | |
| "transactionId" : "sfasfaf32f3", | |
| "add":True | |
| }, | |
| { | |
| "timestamp" : 249816953, | |
| "details": "test object", | |
| "purpose": "for testing", | |
| "paid": True, | |
| "add":False | |
| } | |
| ] | |
| removeExpectedResponses=[ | |
| { | |
| "statusCode": 200, | |
| "message" : "deleted" | |
| }, | |
| { | |
| "statusCode": 400, | |
| "message":'Missing transaction ID' | |
| } | |
| ] | |
| def testGetTransaction(testID, expectedResponse): | |
| result=getTransaction(testID,'') | |
| category=["statusCode","transactionId","details","purpose","price","paid"] | |
| # for i in category: | |
| # assert result[i]==expectedResponse[i], f"Error, {i} is wrong" | |
| print("Success") | |
| return result | |
| def testGetCases(getTestIDs:list,getExpectedResponses:list): | |
| for testID, expectedResponse in zip(getTestIDs, getExpectedResponses): | |
| response=testGetTransaction(testID,expectedResponse) | |
| print(response) | |
| getTestIDs=[ | |
| { | |
| "transactionId" : "osdifhso39019k" | |
| } | |
| ] | |
| getExpectedResponses=[ | |
| { | |
| "statusCode": 200, | |
| "transactionId" : "sfasfaf32f3", | |
| "details": "test item", | |
| "purpose": "test purpose", | |
| "price": 140.02, | |
| "paid": False | |
| } | |
| ] | |
| def testChangeTransaction(input, expectedResponse): | |
| addResult = addTransaction(input, '')['statusCode'] | |
| if addResult == 400: return f"error adding result {addResult}" | |
| result=changeTransaction(input,'') | |
| print(f'result is {result}') | |
| assert result['statusCode'] == expectedResponse['statusCode'], f'wrong status code expect {expectedResponse["statusCode"]} but got {result}' | |
| return result | |
| def testChangeTransactions(changeInputDatas, changeExpectedResponses): | |
| result = [] | |
| for changeinput, expectedResponse in zip(changeInputDatas, changeExpectedResponses): | |
| result.append ( testChangeTransaction(changeinput, expectedResponse)) | |
| return result | |
| changeInputDatas = [ | |
| { | |
| "timestamp" : 249816953, | |
| "transactionId" : "osdifhso39019k", | |
| "details": "test object", | |
| "purpose": "for testing", | |
| "paid": True | |
| }, | |
| { | |
| "timestamp" : 249816953, | |
| "details": "test object", | |
| "purpose": "for testing" | |
| } | |
| ] | |
| changeExpectedResponses = [ | |
| { | |
| 'statusCode': 200 | |
| }, | |
| { | |
| 'statusCode': 400 | |
| } | |
| ] | |
| def testListTransaction(testData,expectedResponse): | |
| addresult=addTransaction(testData,'') | |
| data=listTransaction(testData,'') | |
| print(data, expectedResponse) | |
| # for res, expRes in zip(data,expectedResponse): | |
| assert data['statusCode'] == expectedResponse['statusCode'] | |
| # assert data == expectedResponse,f'Output was {data}, it should be {expectedResponse}' | |
| print('Passed unit test') | |
| return data | |
| def testCases(listTestDatas,listExpectedResponses): | |
| for testData,expectedResponse in zip(listTestDatas,listExpectedResponses): | |
| result=testListTransaction(testData,expectedResponse) | |
| print(result) | |
| listTestDatas=[ | |
| { | |
| '':'' | |
| }, | |
| { | |
| "transactionId" : "sfasfaf32f3", | |
| "details": "test item", | |
| "purpose": "test purpose", | |
| "price": 140.02, | |
| "paid": False, | |
| } | |
| ] | |
| listExpectedResponses=[ | |
| { | |
| "statusCode": 200, | |
| "itemList" : [{ | |
| "transactionId" : "sfasfaf32f3", | |
| "details": "test item", | |
| "purpose": "test purpose", | |
| "price": 140.02, | |
| "paid": False | |
| }] | |
| }, | |
| { | |
| "statusCode": 200, | |
| "itemList" : [{ | |
| "transactionId" : "sfasfaf32f3", | |
| "details": "test item", | |
| "purpose": "test purpose", | |
| "price": 140.02, | |
| "paid": False | |
| }] | |
| } | |
| ] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment