def test_update_context_variables(self): test = Test() context = Context() context.bind_variable('foo', 'broken') test.variable_binds = {'foo': 'correct', 'test': 'value'} test.update_context_before(context) self.assertEqual('correct', context.get_value('foo')) self.assertEqual('value', context.get_value('test'))
def test_update_context_generators(self): """ Test updating context variables using generator """ test = Test() context = Context() context.bind_variable('foo', 'broken') test.variable_binds = {'foo': 'initial_value'} test.generator_binds = {'foo': 'gen'} context.add_generator('gen', generators.generator_basic_ids()) test.update_context_before(context) self.assertEqual(1, context.get_value('foo')) test.update_context_before(context) self.assertEqual(2, context.get_value('foo'))
def test_variables(self): """ Test bind/return of variables """ context = Context() self.assertTrue(context.get_value('foo') is None) self.assertEqual(0, context.mod_count) context.bind_variable('foo','bar') self.assertEqual('bar', context.get_value('foo')) self.assertEqual('bar', context.get_values()['foo']) self.assertEqual(1, context.mod_count) context.bind_variable('foo','bar2') self.assertEqual('bar2', context.get_value('foo')) self.assertEqual(2, context.mod_count)
def test_variables(self): """ Test bind/return of variables """ context = Context() self.assertTrue(context.get_value('foo') is None) self.assertEqual(0, context.mod_count) context.bind_variable('foo', 'bar') self.assertEqual('bar', context.get_value('foo')) self.assertEqual('bar', context.get_values()['foo']) self.assertEqual(1, context.mod_count) context.bind_variable('foo', 'bar2') self.assertEqual('bar2', context.get_value('foo')) self.assertEqual(2, context.mod_count)
def test_mixing_binds(self): """ Ensure that variables are set correctly when mixing explicit declaration and variables """ context = Context() context.add_generator('gen', count_gen()) context.bind_variable('foo', '100') self.assertEqual(1, context.mod_count) context.bind_generator_next('foo', 'gen') self.assertEqual(1, context.get_value('foo')) self.assertEqual(2, context.mod_count)
def test_generator_bind(self): """ Test generator setting to variables """ context = Context() self.assertEqual(0, len(context.get_generators())) my_gen = count_gen() context.add_generator('gen', my_gen) context.bind_generator_next('foo', 'gen') self.assertEqual(1, context.mod_count) self.assertEqual(1, context.get_value('foo')) self.assertTrue(2, context.get_generator('gen').next()) self.assertTrue(3, my_gen.next())
def test_variable_binding(self): """ Test that tests successfully bind variables """ element = 3 input = [{"url": "/ping"},{"name": "cheese"},{"expected_status":["200",204,"202"]}] input.append({"variable_binds":{'var':'value'}}) test = Test.parse_test('', input) binds = test.variable_binds self.assertEqual(1, len(binds)) self.assertEqual('value', binds['var']) # Test that updates context correctly context = Context() test.update_context_before(context) self.assertEqual('value', context.get_value('var')) self.assertTrue(test.is_context_modifier())
def test_header_extraction(self): test = Test() test.url = self.prefix + "/api/person/1/" key1 = "server-header" key2 = "server-header-mixedcase" test.extract_binds = { key1: validators.HeaderExtractor.parse("server"), # Verify case-insensitive behavior key2: validators.HeaderExtractor.parse("sErVer"), } my_context = Context() test_response = resttest.run_test(test, context=my_context) val1 = my_context.get_value(key1) val2 = my_context.get_value(key2) self.assertEqual(val1, val2) self.assertTrue("wsgi" in val1.lower()) self.assertTrue("wsgi" in val2.lower())
def test_header_extraction(self): test = Test() test.url = self.prefix + '/api/person/1/' key1 = 'server-header' key2 = 'server-header-mixedcase' test.extract_binds = { key1: validators.HeaderExtractor.parse('server'), # Verify case-insensitive behavior key2: validators.HeaderExtractor.parse('sErVer') } my_context = Context() test_response = resttest.run_test(test, context=my_context) val1 = my_context.get_value(key1) val2 = my_context.get_value(key2) self.assertEqual(val1, val2) self.assertTrue('wsgi' in val1.lower()) self.assertTrue('wsgi' in val2.lower())