class Replay(object): def __init__(self, file_name, replay_file='replay_file'): self.file_name = file_name self.stream = open(self.file_name).readlines() self.tm = Testmaker() self.tm.setup_logging(replay_file, '/dev/null') self.processor = Processor('replay_processor') self.serial_obj = pickle def process(self): self.log = [] buffer = [] req_re = re.compile('---REQUEST_BREAK---') res_re = re.compile('---RESPONSE_BREAK---') for line in self.stream: if req_re.search(line): #process request to_pickle = ''.join(buffer) request = MockRequest(self.serial_obj.loads(to_pickle)) self.processor.save_request(request) print(request['path'], request['time']) buffer = [] elif res_re.search(line): #process response to_pickle = ''.join(buffer) response = MockRequest(self.serial_obj.loads(to_pickle)) self.log.append(request, response) self.processer.save_response(request, response) print(response['status_code'], response['time']) buffer = [] else: buffer.append(line)
class Parsing(TestCase): """ Tests to test the parsing API """ def setUp(self): self.tm = Testmaker() self.tm.setup_logging('test_file', 'serialize_file') def tearDown(self): #Teardown logging somehow? os.remove('test_file') os.remove('serialize_file') def test_basic_parsing(self): user = User.objects.create_user('john', '*****@*****.**', 'johnpassword') user.save() c = Context({'object': user}) t = TemplateParser('{% load comments %}{% get_comment_list for object as as_var %}{{ as_var }}', c) t.parse() self.assertEquals(t.template_calls[0], '{% get_comment_list for object as as_var %}') self.assertEquals(t.loaded_classes[0], '{% load comments %}') t.create_tests() logs = open('test_file') output = logs.read() self.assertTrue(output.find("{'object': get_model('auth', 'user')") != -1)
class Replay(object): def __init__(self, file_name, replay_file='replay_file'): self.file_name = file_name self.stream = open(self.file_name).readlines() self.tm = Testmaker() self.tm.setup_logging(replay_file, '/dev/null') self.processor = Processor('replay_processor') self.serial_obj = pickle def process(self): self.log = [] buffer = [] req_re = re.compile('---REQUEST_BREAK---') res_re = re.compile('---RESPONSE_BREAK---') for line in self.stream: if req_re.search(line): #process request to_pickle = ''.join(buffer) request = MockRequest(self.serial_obj.loads(to_pickle)) self.processor.save_request(request) print request['path'], request['time'] buffer = [] elif res_re.search(line): #process response to_pickle = ''.join(buffer) response = MockRequest(self.serial_obj.loads(to_pickle)) self.log.append(request, response) self.processer.save_response(request, response) print response['status_code'], response['time'] buffer = [] else: buffer.append(line)
def set_logging(request, filename=None): if not filename: filename = request.REQUEST['filename'] filename = slugify(filename) log_file = '/tmp/testmaker/tests/%s_tests_custom.py' % filename serialize_file = '/tmp/testmaker/tests/%s_serial_custm.py' % filename tm = Testmaker() tm.setup_logging(test_file=log_file, serialize_file=serialize_file) #tm.app_name = 'tmp' #tm.prepare_test_file() return HttpResponse('Setup logging %s' % tm.test_file)
class TestMakerTests(TestCase): """ Tests to test basic testmaker functionality. """ urls = "test_project.polls.urls" fixtures = ['polls_testmaker.json'] def setUp(self): self.tm = Testmaker() self.tm.setup_logging('test_file', 'serialize_file') Testmaker.enabled = True self.tm.insert_middleware() def tearDown(self): #Teardown logging somehow? os.remove('test_file') os.remove('serialize_file') def test_basic_testmaker(self): self.client.get('/') logs = open('test_file') output = logs.read() self.assertTrue( output.find('[<Poll: What\'s up?>, <Poll: Test poll>]') != -1) def test_twill_processor(self): settings.TESTMAKER_PROCESSOR = 'twill' self.client.get('/') self.client.get('/1/') logs = open('test_file') output = logs.read() self.assertTrue(output.find('code 200') != -1) def test_not_inserting_multiple_times(self): """ Test that the middleware will only be inserted once. """ self.tm.insert_middleware() self.tm.insert_middleware() middleware = settings.MIDDLEWARE_CLASSES #A set of the middleware should be the same, meaning the item isn't in twice. self.assertEqual(sorted(list(middleware)), sorted(list(set(middleware))))
class TestMakerTests(TestCase): """ Tests to test basic testmaker functionality. """ urls = "test_project.polls.urls" fixtures = ['polls_testmaker.json'] def setUp(self): self.tm = Testmaker() self.tm.setup_logging('test_file', 'serialize_file') Testmaker.enabled = True self.tm.insert_middleware() def tearDown(self): #Teardown logging somehow? os.remove('test_file') os.remove('serialize_file') def test_basic_testmaker(self): self.client.get('/') logs = open('test_file') output = logs.read() self.assertTrue(output.find('[<Poll: What\'s up?>, <Poll: Test poll>]') != -1) def test_twill_processor(self): settings.TESTMAKER_PROCESSOR = 'twill' self.client.get('/') self.client.get('/1/') logs = open('test_file') output = logs.read() self.assertTrue(output.find('code 200') != -1) def test_not_inserting_multiple_times(self): """ Test that the middleware will only be inserted once. """ self.tm.insert_middleware() self.tm.insert_middleware() middleware = settings.MIDDLEWARE_CLASSES #A set of the middleware should be the same, meaning the item isn't in twice. self.assertEqual(sorted(list(middleware)), sorted(list(set(middleware))))
class TestMakerTests(TestCase): """ Tests to test basic testmaker functionality. """ urls = "polls.urls" fixtures = ['polls_testmaker.json'] def setUp(self): self.tm = Testmaker() self.tm.setup_logging('test_file', 'serialize_file') def tearDown(self): #Teardown logging somehow? os.remove('test_file') os.remove('serialize_file') def test_basic_testmaker(self): self.tm.insert_middleware() self.client.get('/') logs = open('test_file') output = logs.read() self.assertTrue(output.find('[<Poll: What\'s up?>, <Poll: Test poll>]') != -1)