'Test to verify to that functions with different signatures are differentiated in metadata
test_function_same_name_diff_types Creates two functions. One with the same name but a slightly different
signature. Then ensures that both are surfaced separately in our metadata.
@since 2.6.0
@jira_ticket PYTHON-211
@expected_result function with the same name but different signatures should be surfaced separately
@test_category function'

def test_function_same_name_diff_types(self):

    kwargs = self.make_function_kwargs()
    with self.VerifiedFunction(self, **kwargs):
        self.assertGreater(len(kwargs['argument_types']), 1)
        self.assertGreater(len(kwargs['argument_names']), 1)
        kwargs['argument_types'] = kwargs['argument_types'][:1]
        kwargs['argument_names'] = kwargs['argument_names'][:1]
        with self.VerifiedFunction(self, **kwargs):
            functions = [f for f in self.keyspace_function_meta.values() if (f.name == self.function_name)]
            self.assertEqual(len(functions), 2)
            self.assertNotEqual(functions[0].argument_types, functions[1].argument_types)
