Skip to content

Commit

Permalink
Remove log to keep it simple.
Browse files Browse the repository at this point in the history
  • Loading branch information
supplient committed Jun 7, 2019
1 parent 69cbd83 commit 19416b8
Show file tree
Hide file tree
Showing 3 changed files with 51 additions and 74 deletions.
114 changes: 42 additions & 72 deletions back/back_basic.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,24 +6,13 @@
from django.test import Client, TestCase, tag

from .db_checker import DBChecker
from .test_logger import log
from .login_status import LoginStatus


class BackBasicTestCase(TestCase):
# Prepare the database by using fixture.
fixtures = ["back_fixture.json"]

def logError(self, error_msg, case_name=None, response=None):
if case_name and response:
log.error("(%s) Test Fail. Response is [%s].\n\t%s", case_name, response.content, error_msg)
elif case_name and not response:
log.error("(%s) Test Fail. \n\t%s", case_name, error_msg)
elif not case_name and response:
log.error("Test Fail. Response is [%s].\n\t%s", response.content, error_msg)
else:
log.error("Test Fail. \n\t%s", error_msg)

def checkDictEntry(self, dicta, dictb):
for key, value in dictb.items():
if not key in dicta.keys():
Expand All @@ -35,33 +24,21 @@ def checkDictEntry(self, dicta, dictb):
def response2JSON(self, response):
return json.loads(response.content)

def getJsonBody(self, url, form=None):
response = self.client.get(url, form)
try:
self.assertEqual(response.status_code, 200)
body = self.response2JSON(response)
self.assertEqual(body["status"], 1)
retlist = body["body"]
except Exception as e:
log.error("Error when checking response. The response is %s", response.content)
raise e
return (body, retlist, response)

def getErrorTest(self, url, form=None):
response = self.client.get(url, form)
try:
body = self.response2JSON(response)
self.assertLess(body["status"], 0)
except Exception as e:
log.error("Error when checking response. The response is %s", response.content)
raise e
return response

def assertDictEntry(self, dicta, dictb):
for key, value in dictb.items():
self.assertTrue(key in dicta.keys())
self.assertEquals(dicta[key], dictb[key])


class BackPostCheckDBTC(BackBasicTestCase):
def setUp(self):
self.checker = DBChecker(
django.db.connection,
self,
"rateMyCourse"
)
super().setUp()

def postContainTest(self, url, form, text=""):
# Send Request
# Specify the interface to test by assigning the url.
Expand All @@ -71,62 +48,55 @@ def postContainTest(self, url, form, text=""):
# Response Check
# Check the status code(default 200)
# and whether contain text in body.
try:
body = self.response2JSON(response)
self.assertEqual(body["status"], 1)
self.assertContains(response, text)
except Exception as e:
log.error("Error when checking response. The response is %s", response.content)
raise e
body = self.response2JSON(response)
self.assertEqual(body["status"], 1)
self.assertContains(response, text)
return response

def postErrorTest(self, url, form):
response = self.client.post(url, form)

try:
body = self.response2JSON(response)
self.assertLess(body["status"], 0)
except Exception as e:
log.error("Error when checking response. The response is %s", response.content)
raise e
body = self.response2JSON(response)
self.assertLess(body["status"], 0)
return response


class BackPostCheckDBTC(BackBasicTestCase):
def setUp(self):
self.checker = DBChecker(
django.db.connection,
self,
"rateMyCourse"
)
super().setUp()

def postAndCheck(self, url, model_name, prop_dict, text=""):
# Send Request & Response Check
response = self.postContainTest(url, prop_dict, text=text)
# Side Effect Check
# Check whether the side effects take place.
try:
self.checker.check(model_name, prop_dict)
except Exception as e:
log.error("Error when checking body. Response is %s", response.content)
raise e
self.checker.check(model_name, prop_dict)

class BackGetCheckBodyTC(BackBasicTestCase):
def setUp(self):
super().setUp()

def getJsonBody(self, url, form=None):
response = self.client.get(url, form)

self.assertEqual(response.status_code, 200)
body = self.response2JSON(response)
self.assertEqual(body["status"], 1)
retlist = body["body"]

return (body, retlist, response)

def getErrorTest(self, url, form=None):
response = self.client.get(url, form)

body = self.response2JSON(response)
self.assertLess(body["status"], 0)

return response

def getAndCheck(self, url, prop_dict, exp_list=[]):
body, retlist, response = self.getJsonBody(url, prop_dict)
try:
for i in range(len(exp_list)):
exist = False
for j in range(len(retlist)):
if self.checkDictEntry(retlist[j], exp_list[i]):
exist = True
break
self.assertTrue(exist)
except Exception as e:
log.error("Error when checking body. Response is %s", response.content)
raise e

for i in range(len(exp_list)):
exist = False
for j in range(len(retlist)):
if self.checkDictEntry(retlist[j], exp_list[i]):
exist = True
break
self.assertTrue(exist)

2 changes: 1 addition & 1 deletion back/test_back.py
Original file line number Diff line number Diff line change
Expand Up @@ -613,7 +613,7 @@ def test_get_hot_comment(self):
)


class BackAuthTC(BackBasicTestCase):
class BackAuthTC(BackPostCheckDBTC):
def test_sign_in_with_username(self):
try:
self.postContainTest(
Expand Down
9 changes: 8 additions & 1 deletion back/test_logger.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
# This file is not being used.
# Because I have not found a good way to record log info.
# However, the logger in this module can work well.
# Sample Code:
# from .test_logger import log
# log.error("(%s) Test Fail. Response is [%s].\n\t%s", case_name, response.content, error_msg)

import logging
import sys
import os
Expand All @@ -15,4 +22,4 @@
stream_handler = logging.StreamHandler(sys.stdout)
stream_handler.setLevel(logging.INFO)
stream_handler.setFormatter(formatter)
log.addHandler(stream_handler)
log.addHandler(stream_handler)

0 comments on commit 19416b8

Please sign in to comment.