def test_infer_client_method_called(): assert known_types_for_module("""\ import boto3 a = boto3.client('ec2').describe_instances() """) == { 'boto3': Boto3ModuleType(), 'a': Boto3ClientMethodCallType('ec2', 'describe_instances') }
def test_infer_type_on_function_scope(): assert known_types_for_function("""\ import boto3 def foo(): d = boto3.client('dynamodb') e = d.list_tables() foo() """, name='foo') == { 'd': Boto3ClientType('dynamodb'), 'e': Boto3ClientMethodCallType('dynamodb', 'list_tables') }
def test_decorator_list_is_ignored(): assert known_types_for_function("""\ import boto3 import decorators @decorators.retry(10) def foo(): d = boto3.client('dynamodb') e = d.list_tables() foo() """, name='foo') == { 'd': Boto3ClientType('dynamodb'), 'e': Boto3ClientMethodCallType('dynamodb', 'list_tables') }