def test_case_sensitive_dependencies():
    """
    Verify that artifact IDs of dependencies match the real project
    name, not the case-insensitive key.
    """

    class MockModuleBuilder(object):
        def __init__(self):
            self.__module_names = []

        def ensure_dependencies_defined(self):
            pass

        # noinspection PyShadowingBuiltins
        def add_dependency(self, type, id, sha1, md5):
            self.__module_names.append(id.artifact_id)

        def compare_modules(self, freeze_file):
            with open(freeze_file) as f:
                modules = f.read().splitlines()

            expected_set = frozenset([m.split('==')[0] for m in modules])
            actual_set = frozenset(self.__module_names)

            assert actual_set == expected_set, (
                '\nActual module names:\n    {}'
                '\nExpected module names:\n    {}'.format(
                    '\n    '.join(pprint.pformat(actual_set).splitlines()),
                    '\n    '.join(pprint.pformat(expected_set).splitlines())))

            eq_(actual_set, expected_set)

    generator = BuildInfoModuleGenerator(
        determine_dependency_checksums_fn=
        lambda artifact_id, version: (None, None))

    freeze_file = os.path.join(os.path.dirname(
        os.path.abspath(__file__)), "case-sensitive-requirements.txt")

    mock_module_builder = MockModuleBuilder()
    generator._reset_dependencies(freeze_file, mock_module_builder)
    mock_module_builder.compare_modules(freeze_file)
Beispiel #2
0
def test_case_sensitive_dependencies():
    """
    Verify that artifact IDs of dependencies match the real project
    name, not the case-insensitive key.
    """
    class MockModuleBuilder(object):
        def __init__(self):
            self.__module_names = []

        def ensure_dependencies_defined(self):
            pass

        # noinspection PyShadowingBuiltins
        def add_dependency(self, type, id, sha1, md5):
            self.__module_names.append(id.artifact_id)

        def compare_modules(self, freeze_file):
            with open(freeze_file) as f:
                modules = f.read().splitlines()

            expected_set = frozenset([m.split('==')[0] for m in modules])
            actual_set = frozenset(self.__module_names)

            assert actual_set == expected_set, (
                '\nActual module names:\n    {}'
                '\nExpected module names:\n    {}'.format(
                    '\n    '.join(pprint.pformat(actual_set).splitlines()),
                    '\n    '.join(pprint.pformat(expected_set).splitlines())))

            eq_(actual_set, expected_set)

    generator = BuildInfoModuleGenerator(
        determine_dependency_checksums_fn=lambda artifact_id, version:
        (None, None))

    freeze_file = os.path.join(os.path.dirname(os.path.abspath(__file__)),
                               "case-sensitive-requirements.txt")

    mock_module_builder = MockModuleBuilder()
    generator._reset_dependencies(freeze_file, mock_module_builder)
    mock_module_builder.compare_modules(freeze_file)