============================= test session starts ==============================
platform sunos5 -- Python $(PYTHON_VERSION).X -- $(PYTHON)
cachedir: .pytest_cache
hypothesis profile 'default' -> database=DirectoryBasedExampleDatabase('$(@D)/.hypothesis/examples')
rootdir: $(@D)
asyncio: mode=strict
collecting ... collected 121 items

::project PASSED
tests/test_core.py::TestInstall::test_accepts_newer_minor_wheel_versions PASSED
tests/test_core.py::TestInstall::test_calls_destination_correctly PASSED
tests/test_core.py::TestInstall::test_ensure_non_executable_for_additional_metadata PASSED
tests/test_core.py::TestInstall::test_errors_out_when_given_invalid_scheme_in_data PASSED
tests/test_core.py::TestInstall::test_handles_data_properly PASSED
tests/test_core.py::TestInstall::test_handles_platlib PASSED
tests/test_core.py::TestInstall::test_no_entrypoints_is_ok PASSED
tests/test_core.py::TestInstall::test_rejects_newer_major_wheel_versions PASSED
tests/test_destinations.py::TestSchemeDictionaryDestination::test_finalize_write_record PASSED
tests/test_destinations.py::TestSchemeDictionaryDestination::test_write_file[normal file in subfolder] PASSED
tests/test_destinations.py::TestSchemeDictionaryDestination::test_write_file[normal file] PASSED
tests/test_destinations.py::TestSchemeDictionaryDestination::test_write_file[script file in subfolder] PASSED
tests/test_destinations.py::TestSchemeDictionaryDestination::test_write_file[script file] PASSED
tests/test_destinations.py::TestSchemeDictionaryDestination::test_write_record_duplicate PASSED
tests/test_destinations.py::TestSchemeDictionaryDestination::test_write_script PASSED
tests/test_destinations.py::TestWheelDestination::test_raises_not_implemented_error PASSED
tests/test_destinations.py::TestWheelDestination::test_takes_no_arguments PASSED
tests/test_main.py::test_get_scheme_dict PASSED
tests/test_main.py::test_get_scheme_dict_prefix PASSED
tests/test_main.py::test_main PASSED
tests/test_main.py::test_main_no_pyc PASSED
tests/test_main.py::test_main_prefix PASSED
tests/test_records.py::TestParseRecordFile::test_accepts_all_kinds_of_iterables[record_simple_file] PASSED
tests/test_records.py::TestParseRecordFile::test_accepts_all_kinds_of_iterables[record_simple_iter] PASSED
tests/test_records.py::TestParseRecordFile::test_accepts_all_kinds_of_iterables[record_simple_list] PASSED
tests/test_records.py::TestParseRecordFile::test_accepts_empty_iterable PASSED
tests/test_records.py::TestParseRecordFile::test_parse_record_entry_with_backslash_path PASSED
tests/test_records.py::TestParseRecordFile::test_parse_record_entry_with_comma PASSED
tests/test_records.py::TestParseRecordFile::test_rejects_wrong_element_count[five] PASSED
tests/test_records.py::TestParseRecordFile::test_rejects_wrong_element_count[four] PASSED
tests/test_records.py::TestParseRecordFile::test_shows_correct_row_number PASSED
tests/test_records.py::TestRecordEntry::test_equality PASSED
tests/test_records.py::TestRecordEntry::test_invalid_elements[---caused_by0] PASSED
tests/test_records.py::TestRecordEntry::test_invalid_elements[--non-int-caused_by1] PASSED
tests/test_records.py::TestRecordEntry::test_invalid_elements[a.py--non-int-caused_by2] PASSED
tests/test_records.py::TestRecordEntry::test_invalid_elements[a.py-some-random-value-non-int-caused_by3] PASSED
tests/test_records.py::TestRecordEntry::test_populates_attributes_correctly[purelib-elements0-test1\n-True] PASSED
tests/test_records.py::TestRecordEntry::test_populates_attributes_correctly[purelib-elements1-test2\n-True] PASSED
tests/test_records.py::TestRecordEntry::test_populates_attributes_correctly[purelib-elements2-test3\n-True] PASSED
tests/test_records.py::TestRecordEntry::test_populates_attributes_correctly[purelib-elements3-test1\n-False] PASSED
tests/test_records.py::TestRecordEntry::test_populates_attributes_correctly[purelib-elements4-test1\n-True] PASSED
tests/test_records.py::TestRecordEntry::test_populates_attributes_correctly[purelib-elements5-test1\n-True] PASSED
tests/test_records.py::TestRecordEntry::test_string_representation[purelib-elements0-test1\n-True] PASSED
tests/test_records.py::TestRecordEntry::test_string_representation[purelib-elements1-test2\n-True] PASSED
tests/test_records.py::TestRecordEntry::test_string_representation[purelib-elements2-test3\n-True] PASSED
tests/test_records.py::TestRecordEntry::test_string_representation[purelib-elements3-test1\n-False] PASSED
tests/test_records.py::TestRecordEntry::test_string_representation[purelib-elements4-test1\n-True] PASSED
tests/test_records.py::TestRecordEntry::test_string_representation[purelib-elements5-test1\n-True] PASSED
tests/test_records.py::TestRecordEntry::test_string_representation_with_prefix[purelib-elements0-test1\n-True] PASSED
tests/test_records.py::TestRecordEntry::test_string_representation_with_prefix[purelib-elements1-test2\n-True] PASSED
tests/test_records.py::TestRecordEntry::test_string_representation_with_prefix[purelib-elements2-test3\n-True] PASSED
tests/test_records.py::TestRecordEntry::test_string_representation_with_prefix[purelib-elements3-test1\n-False] PASSED
tests/test_records.py::TestRecordEntry::test_string_representation_with_prefix[purelib-elements4-test1\n-True] PASSED
tests/test_records.py::TestRecordEntry::test_string_representation_with_prefix[purelib-elements5-test1\n-True] PASSED
tests/test_records.py::TestRecordEntry::test_valid_elements[a.py--3144] PASSED
tests/test_records.py::TestRecordEntry::test_valid_elements[a.py--] PASSED
tests/test_records.py::TestRecordEntry::test_valid_elements[a.py-sha256=AVTFPZpEKzuHr7OvQZmhaU3LvwKz06AJw8mT\\_pNh2yI-3144] PASSED
tests/test_records.py::TestRecordEntry::test_valid_elements[a.py-sha256=AVTFPZpEKzuHr7OvQZmhaU3LvwKz06AJw8mT\\_pNh2yI-] PASSED
tests/test_records.py::TestRecordEntry::test_validation[purelib-elements0-test1\n-True] PASSED
tests/test_records.py::TestRecordEntry::test_validation[purelib-elements1-test2\n-True] PASSED
tests/test_records.py::TestRecordEntry::test_validation[purelib-elements2-test3\n-True] PASSED
tests/test_records.py::TestRecordEntry::test_validation[purelib-elements3-test1\n-False] PASSED
tests/test_records.py::TestRecordEntry::test_validation[purelib-elements4-test1\n-True] PASSED
tests/test_records.py::TestRecordEntry::test_validation[purelib-elements5-test1\n-True] PASSED
tests/test_scripts.py::test_script_generate_launcher[win-amd64-console] PASSED
tests/test_scripts.py::test_script_generate_launcher[win-amd64-gui] PASSED
tests/test_scripts.py::test_script_generate_launcher[win-arm-console] PASSED
tests/test_scripts.py::test_script_generate_launcher[win-arm-gui] PASSED
tests/test_scripts.py::test_script_generate_launcher[win-ia32-console] PASSED
tests/test_scripts.py::test_script_generate_launcher[win-ia32-gui] PASSED
tests/test_scripts.py::test_script_generate_launcher_error[console-nonexist] PASSED
tests/test_scripts.py::test_script_generate_launcher_error[nonexist-nonexist] PASSED
tests/test_scripts.py::test_script_generate_launcher_error[nonexist-win-ia32] PASSED
tests/test_scripts.py::test_script_generate_simple PASSED
tests/test_scripts.py::test_script_generate_space_in_executable PASSED
tests/test_sources.py::TestWheelFile::test_accept_wheel_with_signature_file PASSED
tests/test_sources.py::TestWheelFile::test_correctly_reads_from_dist_info_files PASSED
tests/test_sources.py::TestWheelFile::test_enforces_single_dist_info PASSED
tests/test_sources.py::TestWheelFile::test_finds_dist_info PASSED
tests/test_sources.py::TestWheelFile::test_provides_correct_contents PASSED
tests/test_sources.py::TestWheelFile::test_provides_correct_dist_info_filenames PASSED
tests/test_sources.py::TestWheelFile::test_reject_signature_file_in_record PASSED
tests/test_sources.py::TestWheelFile::test_rejects_invalid_record_entry PASSED
tests/test_sources.py::TestWheelFile::test_rejects_no_record_on_validate PASSED
tests/test_sources.py::TestWheelFile::test_rejects_not_okay_name PASSED
tests/test_sources.py::TestWheelFile::test_rejects_record_contain_self_hash PASSED
tests/test_sources.py::TestWheelFile::test_rejects_record_missing_file_on_validate PASSED
tests/test_sources.py::TestWheelFile::test_rejects_record_missing_hash PASSED
tests/test_sources.py::TestWheelFile::test_rejects_record_validation_failed PASSED
tests/test_sources.py::TestWheelFile::test_requires_dist_info_name_match PASSED
tests/test_sources.py::TestWheelSource::test_correctly_computes_properties PASSED
tests/test_sources.py::TestWheelSource::test_raises_not_implemented_error PASSED
tests/test_sources.py::TestWheelSource::test_takes_two_arguments PASSED
tests/test_utils.py::TestCanonicalizeDistributionName::test_valid_cases[ABC..12-abc-12] PASSED
tests/test_utils.py::TestCanonicalizeDistributionName::test_valid_cases[package-1-package-1] PASSED
tests/test_utils.py::TestConstructRecord::test_construct PASSED
tests/test_utils.py::TestCopyFileObjWithHashing::test_basic_functionality PASSED
tests/test_utils.py::TestParseEntryPoints::test_valid[cli-and-gui] PASSED
tests/test_utils.py::TestParseEntryPoints::test_valid[cli] PASSED
tests/test_utils.py::TestParseEntryPoints::test_valid[empty] PASSED
tests/test_utils.py::TestParseEntryPoints::test_valid[gui] PASSED
tests/test_utils.py::TestParseEntryPoints::test_valid[unrelated] PASSED
tests/test_utils.py::TestParseMetadata::test_basics PASSED
tests/test_utils.py::TestParseWheelFilename::test_invalid_cases[pip-20.0.0---.whl] PASSED
tests/test_utils.py::TestParseWheelFilename::test_invalid_cases[pip-20.0.0-py2.py3-none-any.zip] PASSED
tests/test_utils.py::TestParseWheelFilename::test_invalid_cases[pip-20.0.0.whl] PASSED
tests/test_utils.py::TestParseWheelFilename::test_valid_cases[package-1!1.0+abc.7-753-py3-none-any.whl-expected0] PASSED
tests/test_utils.py::TestParseWheelFilename::test_valid_cases[package-1!1.0+abc.7-py3-none-any.whl-expected1] PASSED
tests/test_utils.py::TestParseWheelFilename::test_valid_cases[tensorflow-2.3.0-cp38-cp38-macosx_10_11_x86_64.whl-expected2] PASSED
tests/test_utils.py::TestParseWheelFilename::test_valid_cases[tensorflow-2.3.0-cp38-cp38-manylinux2010_x86_64.whl-expected3] PASSED
tests/test_utils.py::TestParseWheelFilename::test_valid_cases[tensorflow-2.3.0-cp38-cp38-win_amd64.whl-expected4] PASSED
tests/test_utils.py::TestScript::test_keep_data[#!py\ntest] PASSED
tests/test_utils.py::TestScript::test_keep_data[#!something\ntest] PASSED
tests/test_utils.py::TestScript::test_keep_data[#something\ntest] PASSED
tests/test_utils.py::TestScript::test_keep_data[#something] PASSED
tests/test_utils.py::TestScript::test_keep_data[something] PASSED
tests/test_utils.py::TestScript::test_replace_shebang[python-no-content] PASSED
tests/test_utils.py::TestScript::test_replace_shebang[python-with-args] PASSED
tests/test_utils.py::TestScript::test_replace_shebang[python] PASSED
tests/test_utils.py::TestScript::test_replace_shebang[pythonw] PASSED

======== 121 passed ========