Skip to content

Instantly share code, notes, and snippets.

@thanakijwanavit
Created September 25, 2020 03:06
Show Gist options
  • Select an option

  • Save thanakijwanavit/694f11f197b1be268cc0d514b8ade606 to your computer and use it in GitHub Desktop.

Select an option

Save thanakijwanavit/694f11f197b1be268cc0d514b8ade606 to your computer and use it in GitHub Desktop.
expense transaction for hatari-expense-app
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