def test_inferred_module_type_tracks_assignment(): assert known_types_for_module("""\ import boto3 a = boto3 """) == { 'boto3': Boto3ModuleType(), 'a': Boto3ModuleType() }
def test_type_equality(): assert Boto3ModuleType() == Boto3ModuleType() assert Boto3CreateClientType() == Boto3CreateClientType() assert Boto3ModuleType() != Boto3CreateClientType() assert Boto3ClientType('s3') == Boto3ClientType('s3') assert Boto3ClientType('s3') != Boto3ClientType('ec2') assert Boto3ClientType('s3') == Boto3ClientType('s3') assert (Boto3ClientMethodType('s3', 'list_objects') == Boto3ClientMethodType('s3', 'list_objects')) assert (Boto3ClientMethodType('ec2', 'describe_instances') != Boto3ClientMethodType('s3', 'list_object')) assert (Boto3ClientMethodType('ec2', 'describe_instances') != Boto3CreateClientType())
def test_inferred_client_type(): assert known_types_for_module("""\ import boto3 a = boto3.client('ec2') """) == { 'boto3': Boto3ModuleType(), 'a': Boto3ClientType('ec2') }
def test_inferred_client_create_type(): assert known_types_for_module("""\ import boto3 a = boto3.client """) == { 'boto3': Boto3ModuleType(), 'a': Boto3CreateClientType() }
def test_inferred_module_type(): assert known_types_for_module("""\ import boto3 import os a = 1 """) == { 'boto3': Boto3ModuleType() }
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_inferred_client_type_each_part(): assert known_types_for_module("""\ import boto3 a = boto3.client b = a('ec2') """) == {'boto3': Boto3ModuleType(), 'a': Boto3CreateClientType(), 'b': Boto3ClientType('ec2')}
def test_can_understand_return_types(): assert known_types_for_module("""\ import boto3 def create_client(): d = boto3.client('dynamodb') return d e = create_client() """) == { 'boto3': Boto3ModuleType(), 'create_client': FunctionType(Boto3ClientType('dynamodb')), 'e': Boto3ClientType('dynamodb'), }