def test_single_factory_usage(self, mock_client): current_id = 1234 def create_resource(): nonlocal current_id output = current_id current_id += 1 return output fuzz_lightyear.register_factory('id')(create_resource) responses = validate_sequence( [ FuzzingRequest( tag='sequence', operation_id='post_bravo_one', ), FuzzingRequest( tag='sequence', operation_id='get_bravo_two', ), ], ResponseSequence(), ) assert responses.responses[-1] == 1234 assert current_id != 1234
def test_endpoint_specific(mock_client): def factory(): return 1 def other_factory(): return 2 fuzz_lightyear.register_factory('string, integer')(factory) fuzz_lightyear.register_factory( 'string, integer', operation_ids='get_expect_other_primitives', )(other_factory) request = FuzzingRequest( operation_id='get_expect_primitives', tag='types', ) request.send() other_request = FuzzingRequest( operation_id='get_expect_other_primitives', tag='types', ) other_request.send() assert request.fuzzed_input['string'] == '1' assert request.fuzzed_input['integer'] == 1 assert other_request.fuzzed_input['string'] == '2' assert other_request.fuzzed_input['integer'] == 2
def test_throws_error_when_no_default(self): def foobar(no_default): pass fuzz_lightyear.register_factory('a')(foobar) with pytest.raises(TypeError): get_user_defined_mapping()['a']()
def test_inject_variables(function): def generator(): return 1 fuzz_lightyear.register_factory('user_id')(generator) def wrapped(user_id): assert user_id == 1 getattr(auth, function)(wrapped) getattr(get_abstraction(), f'get_{function.replace("account", "session")}')()
def test_success(self, mock_client): def factory(): return 1 fuzz_lightyear.register_factory('id')(factory) request = FuzzingRequest( operation_id='get_public_listing', tag='basic', ) request.send() assert request.fuzzed_input['id'] == 1
def test_session_fixtures(mock_client): count = 0 def nested_function(): nonlocal count count += 1 return count def child_a(nested): return nested def child_b(nested): return nested def function(a, b): assert a == b return 'does_not_matter' fuzz_lightyear.register_factory('nested')(nested_function) fuzz_lightyear.register_factory('a')(child_a) fuzz_lightyear.register_factory('b')(child_b) fuzz_lightyear.register_factory('string')(function) request = FuzzingRequest( operation_id='get_expect_primitives', tag='types', ) request.send()
def test_exclude_parameter(self, mock_client): def factory(): return None fuzz_lightyear.register_factory('id')(factory) request = FuzzingRequest( operation_id='get_public_listing', tag='basic', ) # id is a required parameter, so this will raise, if the id isn't # provided (as expected) with pytest.raises(SwaggerMappingError): request.send()
def test_nested(self, mock_client): def factory(): return 'test_value' fuzz_lightyear.register_factory('session')(factory) request = FuzzingRequest( operation_id='post_nested_model', tag='complex', ) request.send() assert request.fuzzed_input['payload']['info'][ 'session'] == 'test_value'
def test_type_hinting(mock_client): def factory(): return 1 fuzz_lightyear.register_factory('string, integer')(factory) request = FuzzingRequest( operation_id='get_expect_primitives', tag='types', ) request.send() assert request.fuzzed_input['string'] == '1' assert request.fuzzed_input['integer'] == 1
def test_fixture(self): def factory(): return 'qux' fuzz_lightyear.register_factory('enumerated_field')(factory) factory = fuzz_parameters([( 'enumerated_field', { 'name': 'enumerated_field', 'type': 'string', 'enum': ['foo', 'bar'], 'required': True, }, )]) assert factory.example()['enumerated_field'] == 'qux'
def setup(self): fuzz_lightyear.register_factory('dependency')(self.dependency) fuzz_lightyear.register_factory('string_factory')(self.string_factory) fuzz_lightyear.register_factory('integer_factory')( self.integer_factory) fuzz_lightyear.register_factory('custom_factory')(self.custom_factory)
def test_re_registration(self): function = fuzz_lightyear.register_factory('a')(self.dependency) fuzz_lightyear.register_factory('b')(function) assert get_user_defined_mapping()['b']() == 1
def setup(self): fuzz_lightyear.register_factory('nested_dependency')( self.nested_dependency) fuzz_lightyear.register_factory('caller')(self.caller) fuzz_lightyear.register_factory('dependency')(self.dependency)
def register_function(key, return_value=None): def foobar(): return return_value fuzz_lightyear.register_factory(key)(foobar) return foobar
def setup(self): fuzz_lightyear.register_factory('nested_dependency')( self.nested_dependency) fuzz_lightyear.register_factory('caller')(self.caller) fuzz_lightyear.register_factory( 'caller', operation_ids='new_opid', )(self.special_caller) fuzz_lightyear.register_factory( 'caller', operation_ids='only_opid', )(self.endpt_specific_caller) fuzz_lightyear.register_factory('dependency')(self.dependency) fuzz_lightyear.register_factory( 'endpt_dependency', operation_ids='only_opid', )(self.dependency)