Example #1
0
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)
Example #4
0
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)
Example #5
0
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)