We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
=========================================================================================================== FAILURES =========================================================================================================== _____________________________________________________________________________________________________ test_archive_session _____________________________________________________________________________________________________ tmpdir = local('/tmp/pytest-of-yuri/pytest-4/test_archive_session0') def test_archive_session(tmpdir): tmpdir.chdir() s = internetarchive.session.ArchiveSession(CONFIG) assert os.path.isfile('test.log') > assert CONFIG == s.config E AssertionError: assert {'cookies': {...test_secret'}} == {'cookies': {...test_secret'}} E Omitting 3 identical items, use -vv to show E Right contains 1 more item: E {'general': {'screenname': 'None'}} E Full diff: E { E 'cookies': {'logged-in-sig': 'testsig; path=/; domain=.archive.org', E 'logged-in-user': 'test%40example.com; path=/; '... E E ...Full output truncated (7 lines hidden), use '-vv' to show /usr/ports/www/py-internetarchive/work-py39/internetarchive-3.5.0/tests/test_session.py:31: AssertionError ____________________________________________________________________________________________ test_write_config_file_config_existing ____________________________________________________________________________________________ def test_write_config_file_config_existing(): """Test that .config's permissions remain but ia gets created correctly.""" > _test_write_config_file( dirs=['.config'], expected_config_file='.config/internetarchive/ia.ini', expected_modes=[ ('.config/internetarchive/ia.ini', 0o600), ('.config/internetarchive', 0o700), ('.config', 0o777), ], ) /usr/ports/www/py-internetarchive/work-py39/internetarchive-3.5.0/tests/test_config.py:367: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ expected_config_file = '/tmp/tmpszciqv8h/.config/internetarchive/ia.ini' expected_modes = [('/tmp/tmpszciqv8h/.config/internetarchive/ia.ini', 384), ('/tmp/tmpszciqv8h/.config/internetarchive', 448), ('/tmp/tmpszciqv8h/.config', 511)], dirs = ['/tmp/tmpszciqv8h/.config'] create_expected_file = False, config_file_param = None def _test_write_config_file( expected_config_file, expected_modes, dirs=None, create_expected_file=False, config_file_param=None): # expected_config_file: str # expected_modes: list of (path, mode) tuples # dirs: list of str, directories to create before running write_config_file # create_expected_file: bool, create the expected_config_file if True # config_file_param: str, filename to pass to write_config_file # Both dirs and the config file are created with mode 777 (minus umask). # All paths are evaluated relative to a temporary HOME. # Mode comparison accounts for the umask; expected_modes does not need to care about it. with tempfile.TemporaryDirectory() as temp_home_dir: expected_config_file = os.path.join(temp_home_dir, expected_config_file) if dirs: dirs = [os.path.join(temp_home_dir, d) for d in dirs] expected_modes = [(os.path.join(temp_home_dir, p), m) for p, m in expected_modes] if config_file_param: config_file_param = os.path.join(temp_home_dir, config_file_param) with _environ(HOME=temp_home_dir): # Need to account for the umask in the expected_modes comparisons. # The umask can't just be retrieved, so set and then restore previous value. umask = os.umask(0) os.umask(umask) if dirs: for d in dirs: os.mkdir(d) if create_expected_file: with open(expected_config_file, 'w') as fp: os.chmod(expected_config_file, 0o777) config_file = internetarchive.config.write_config_file({}, config_file_param) > assert config_file == expected_config_file E AssertionError: assert '/usr/ports/w...rchive/ia.ini' == '/tmp/tmpszci...rchive/ia.ini' E - /tmp/tmpszciqv8h/.config/internetarchive/ia.ini E + /usr/ports/www/py-internetarchive/work-py39/internetarchive/ia.ini /usr/ports/www/py-internetarchive/work-py39/internetarchive-3.5.0/tests/test_config.py:346: AssertionError _____________________________________________________________________________________________ test_parse_config_file_existing_all ______________________________________________________________________________________________ def test_parse_config_file_existing_all(): > _test_parse_config_file( expected_result=('$TMPTESTDIR/.config/internetarchive/ia.ini', True), config_file_paths=[ '$TMPTESTDIR/.config/internetarchive/ia.ini', '$TMPTESTDIR/.config/ia.ini', '$TMPTESTDIR/.ia' ], ) /usr/ports/www/py-internetarchive/work-py39/internetarchive-3.5.0/tests/test_config.py:252: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ expected_result = ('/tmp/tmp70g3p74q/.config/internetarchive/ia.ini', True), config_file_contents = '' config_file_paths = ['/tmp/tmp70g3p74q/.config/internetarchive/ia.ini', '/tmp/tmp70g3p74q/.config/ia.ini', '/tmp/tmp70g3p74q/.ia'], home = '/tmp/tmp70g3p74q', xdg_config_home = None, config_file_param = None def _test_parse_config_file( expected_result, config_file_contents='', config_file_paths=None, home=None, xdg_config_home=None, config_file_param=None): # expected_result: (config_file_path, is_xdg); config isn't compared. # config_file_contents: str # config_file_paths: list of filenames to write config_file_contents to # home: str, override HOME env var; default: path of the temporary dir # xdg_config_home: str, set XDG_CONFIG_HOME # config_file_param: str, filename to pass to parse_config_file # All paths starting with '$TMPTESTDIR/' get evaluated relative to the temp dir. if not config_file_paths: config_file_paths = [] with tempfile.TemporaryDirectory() as tmp_test_dir: def _replace_path(s): if s and s.startswith('$TMPTESTDIR/'): return os.path.join(tmp_test_dir, s.split('/', 1)[1]) return s expected_result = (_replace_path(expected_result[0]), expected_result[1]) config_file_paths = [_replace_path(x) for x in config_file_paths] home = _replace_path(home) xdg_config_home = _replace_path(xdg_config_home) config_file_param = _replace_path(config_file_param) for p in config_file_paths: os.makedirs(os.path.dirname(p), exist_ok=True) with open(p, 'w') as fp: fp.write(config_file_contents) if home is None: home = tmp_test_dir env = {'HOME': home} if xdg_config_home is not None: env['XDG_CONFIG_HOME'] = xdg_config_home with _environ(**env): config_file_path, is_xdg, config = internetarchive.config.parse_config_file( config_file=config_file_param) > assert (config_file_path, is_xdg) == expected_result[0:2] E AssertionError: assert ('/usr/ports/...ia.ini', True) == ('/tmp/tmp70g...ia.ini', True) E At index 0 diff: '/usr/ports/www/py-internetarchive/work-py39/internetarchive/ia.ini' != '/tmp/tmp70g3p74q/.config/internetarchive/ia.ini' E Full diff: E - ('/tmp/tmp70g3p74q/.config/internetarchive/ia.ini', True) E + ('/usr/ports/www/py-internetarchive/work-py39/internetarchive/ia.ini', True) /usr/ports/www/py-internetarchive/work-py39/internetarchive-3.5.0/tests/test_config.py:221: AssertionError ____________________________________________________________________________________ test_write_config_file_config_internetarchive_existing ____________________________________________________________________________________ def test_write_config_file_config_internetarchive_existing(): """Test that directory permissions are left as is""" > _test_write_config_file( dirs=['.config', '.config/internetarchive'], expected_config_file='.config/internetarchive/ia.ini', expected_modes=[ ('.config/internetarchive/ia.ini', 0o600), ('.config/internetarchive', 0o777), ('.config', 0o777), ], ) /usr/ports/www/py-internetarchive/work-py39/internetarchive-3.5.0/tests/test_config.py:380: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ expected_config_file = '/tmp/tmpy6oy6hmq/.config/internetarchive/ia.ini' expected_modes = [('/tmp/tmpy6oy6hmq/.config/internetarchive/ia.ini', 384), ('/tmp/tmpy6oy6hmq/.config/internetarchive', 511), ('/tmp/tmpy6oy6hmq/.config', 511)] dirs = ['/tmp/tmpy6oy6hmq/.config', '/tmp/tmpy6oy6hmq/.config/internetarchive'], create_expected_file = False, config_file_param = None def _test_write_config_file( expected_config_file, expected_modes, dirs=None, create_expected_file=False, config_file_param=None): # expected_config_file: str # expected_modes: list of (path, mode) tuples # dirs: list of str, directories to create before running write_config_file # create_expected_file: bool, create the expected_config_file if True # config_file_param: str, filename to pass to write_config_file # Both dirs and the config file are created with mode 777 (minus umask). # All paths are evaluated relative to a temporary HOME. # Mode comparison accounts for the umask; expected_modes does not need to care about it. with tempfile.TemporaryDirectory() as temp_home_dir: expected_config_file = os.path.join(temp_home_dir, expected_config_file) if dirs: dirs = [os.path.join(temp_home_dir, d) for d in dirs] expected_modes = [(os.path.join(temp_home_dir, p), m) for p, m in expected_modes] if config_file_param: config_file_param = os.path.join(temp_home_dir, config_file_param) with _environ(HOME=temp_home_dir): # Need to account for the umask in the expected_modes comparisons. # The umask can't just be retrieved, so set and then restore previous value. umask = os.umask(0) os.umask(umask) if dirs: for d in dirs: os.mkdir(d) if create_expected_file: with open(expected_config_file, 'w') as fp: os.chmod(expected_config_file, 0o777) config_file = internetarchive.config.write_config_file({}, config_file_param) > assert config_file == expected_config_file E AssertionError: assert '/usr/ports/w...rchive/ia.ini' == '/tmp/tmpy6oy...rchive/ia.ini' E - /tmp/tmpy6oy6hmq/.config/internetarchive/ia.ini E + /usr/ports/www/py-internetarchive/work-py39/internetarchive/ia.ini /usr/ports/www/py-internetarchive/work-py39/internetarchive-3.5.0/tests/test_config.py:346: AssertionError _________________________________________________________________________________________________ test_write_config_file_blank _________________________________________________________________________________________________ def test_write_config_file_blank(): """Test that a blank HOME is populated with expected dirs and modes.""" > _test_write_config_file( expected_config_file='.config/internetarchive/ia.ini', expected_modes=[ ('.config/internetarchive/ia.ini', 0o600), ('.config/internetarchive', 0o700), ('.config', 0o700), ], ) /usr/ports/www/py-internetarchive/work-py39/internetarchive-3.5.0/tests/test_config.py:355: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ expected_config_file = '/tmp/tmp3r289ul8/.config/internetarchive/ia.ini' expected_modes = [('/tmp/tmp3r289ul8/.config/internetarchive/ia.ini', 384), ('/tmp/tmp3r289ul8/.config/internetarchive', 448), ('/tmp/tmp3r289ul8/.config', 448)], dirs = None, create_expected_file = False config_file_param = None def _test_write_config_file( expected_config_file, expected_modes, dirs=None, create_expected_file=False, config_file_param=None): # expected_config_file: str # expected_modes: list of (path, mode) tuples # dirs: list of str, directories to create before running write_config_file # create_expected_file: bool, create the expected_config_file if True # config_file_param: str, filename to pass to write_config_file # Both dirs and the config file are created with mode 777 (minus umask). # All paths are evaluated relative to a temporary HOME. # Mode comparison accounts for the umask; expected_modes does not need to care about it. with tempfile.TemporaryDirectory() as temp_home_dir: expected_config_file = os.path.join(temp_home_dir, expected_config_file) if dirs: dirs = [os.path.join(temp_home_dir, d) for d in dirs] expected_modes = [(os.path.join(temp_home_dir, p), m) for p, m in expected_modes] if config_file_param: config_file_param = os.path.join(temp_home_dir, config_file_param) with _environ(HOME=temp_home_dir): # Need to account for the umask in the expected_modes comparisons. # The umask can't just be retrieved, so set and then restore previous value. umask = os.umask(0) os.umask(umask) if dirs: for d in dirs: os.mkdir(d) if create_expected_file: with open(expected_config_file, 'w') as fp: os.chmod(expected_config_file, 0o777) config_file = internetarchive.config.write_config_file({}, config_file_param) > assert config_file == expected_config_file E AssertionError: assert '/usr/ports/w...rchive/ia.ini' == '/tmp/tmp3r28...rchive/ia.ini' E - /tmp/tmp3r289ul8/.config/internetarchive/ia.ini E + /usr/ports/www/py-internetarchive/work-py39/internetarchive/ia.ini /usr/ports/www/py-internetarchive/work-py39/internetarchive-3.5.0/tests/test_config.py:346: AssertionError _______________________________________________________________________________________ test_parse_config_file_with_environment_variable _______________________________________________________________________________________ def test_parse_config_file_with_environment_variable(): with _environ(IA_CONFIG_FILE='/inexistent.ia.ini'): > _test_parse_config_file( expected_result=('/inexistent.ia.ini', False), ) /usr/ports/www/py-internetarchive/work-py39/internetarchive-3.5.0/tests/test_config.py:299: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ expected_result = ('/inexistent.ia.ini', False), config_file_contents = '', config_file_paths = [], home = '/tmp/tmpxicijms5', xdg_config_home = None, config_file_param = None def _test_parse_config_file( expected_result, config_file_contents='', config_file_paths=None, home=None, xdg_config_home=None, config_file_param=None): # expected_result: (config_file_path, is_xdg); config isn't compared. # config_file_contents: str # config_file_paths: list of filenames to write config_file_contents to # home: str, override HOME env var; default: path of the temporary dir # xdg_config_home: str, set XDG_CONFIG_HOME # config_file_param: str, filename to pass to parse_config_file # All paths starting with '$TMPTESTDIR/' get evaluated relative to the temp dir. if not config_file_paths: config_file_paths = [] with tempfile.TemporaryDirectory() as tmp_test_dir: def _replace_path(s): if s and s.startswith('$TMPTESTDIR/'): return os.path.join(tmp_test_dir, s.split('/', 1)[1]) return s expected_result = (_replace_path(expected_result[0]), expected_result[1]) config_file_paths = [_replace_path(x) for x in config_file_paths] home = _replace_path(home) xdg_config_home = _replace_path(xdg_config_home) config_file_param = _replace_path(config_file_param) for p in config_file_paths: os.makedirs(os.path.dirname(p), exist_ok=True) with open(p, 'w') as fp: fp.write(config_file_contents) if home is None: home = tmp_test_dir env = {'HOME': home} if xdg_config_home is not None: env['XDG_CONFIG_HOME'] = xdg_config_home with _environ(**env): config_file_path, is_xdg, config = internetarchive.config.parse_config_file( config_file=config_file_param) > assert (config_file_path, is_xdg) == expected_result[0:2] E AssertionError: assert ('/usr/ports/...ia.ini', True) == ('/inexistent.ia.ini', False) E At index 0 diff: '/usr/ports/www/py-internetarchive/work-py39/internetarchive/ia.ini' != '/inexistent.ia.ini' E Full diff: E - ('/inexistent.ia.ini', False) E + ('/usr/ports/www/py-internetarchive/work-py39/internetarchive/ia.ini', True) /usr/ports/www/py-internetarchive/work-py39/internetarchive-3.5.0/tests/test_config.py:221: AssertionError __________________________________________________________________________________________ test_parse_config_file_existing_config_ia ___________________________________________________________________________________________ def test_parse_config_file_existing_config_ia(): > _test_parse_config_file( expected_result=('$TMPTESTDIR/.config/ia.ini', False), config_file_paths=['$TMPTESTDIR/.config/ia.ini'], ) /usr/ports/www/py-internetarchive/work-py39/internetarchive-3.5.0/tests/test_config.py:231: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ expected_result = ('/tmp/tmpoi2t7t7u/.config/ia.ini', False), config_file_contents = '', config_file_paths = ['/tmp/tmpoi2t7t7u/.config/ia.ini'], home = '/tmp/tmpoi2t7t7u', xdg_config_home = None, config_file_param = None def _test_parse_config_file( expected_result, config_file_contents='', config_file_paths=None, home=None, xdg_config_home=None, config_file_param=None): # expected_result: (config_file_path, is_xdg); config isn't compared. # config_file_contents: str # config_file_paths: list of filenames to write config_file_contents to # home: str, override HOME env var; default: path of the temporary dir # xdg_config_home: str, set XDG_CONFIG_HOME # config_file_param: str, filename to pass to parse_config_file # All paths starting with '$TMPTESTDIR/' get evaluated relative to the temp dir. if not config_file_paths: config_file_paths = [] with tempfile.TemporaryDirectory() as tmp_test_dir: def _replace_path(s): if s and s.startswith('$TMPTESTDIR/'): return os.path.join(tmp_test_dir, s.split('/', 1)[1]) return s expected_result = (_replace_path(expected_result[0]), expected_result[1]) config_file_paths = [_replace_path(x) for x in config_file_paths] home = _replace_path(home) xdg_config_home = _replace_path(xdg_config_home) config_file_param = _replace_path(config_file_param) for p in config_file_paths: os.makedirs(os.path.dirname(p), exist_ok=True) with open(p, 'w') as fp: fp.write(config_file_contents) if home is None: home = tmp_test_dir env = {'HOME': home} if xdg_config_home is not None: env['XDG_CONFIG_HOME'] = xdg_config_home with _environ(**env): config_file_path, is_xdg, config = internetarchive.config.parse_config_file( config_file=config_file_param) > assert (config_file_path, is_xdg) == expected_result[0:2] E AssertionError: assert ('/usr/ports/...ia.ini', True) == ('/tmp/tmpoi2...a.ini', False) E At index 0 diff: '/usr/ports/www/py-internetarchive/work-py39/internetarchive/ia.ini' != '/tmp/tmpoi2t7t7u/.config/ia.ini' E Full diff: E - ('/tmp/tmpoi2t7t7u/.config/ia.ini', False) E + ('/usr/ports/www/py-internetarchive/work-py39/internetarchive/ia.ini', True) /usr/ports/www/py-internetarchive/work-py39/internetarchive-3.5.0/tests/test_config.py:221: AssertionError ____________________________________________________________________________________________ test_parse_config_file_existing_dotia _____________________________________________________________________________________________ def test_parse_config_file_existing_dotia(): > _test_parse_config_file( expected_result=('$TMPTESTDIR/.ia', False), config_file_paths=['$TMPTESTDIR/.ia'], ) /usr/ports/www/py-internetarchive/work-py39/internetarchive-3.5.0/tests/test_config.py:238: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ expected_result = ('/tmp/tmpp0brtuug/.ia', False), config_file_contents = '', config_file_paths = ['/tmp/tmpp0brtuug/.ia'], home = '/tmp/tmpp0brtuug', xdg_config_home = None, config_file_param = None def _test_parse_config_file( expected_result, config_file_contents='', config_file_paths=None, home=None, xdg_config_home=None, config_file_param=None): # expected_result: (config_file_path, is_xdg); config isn't compared. # config_file_contents: str # config_file_paths: list of filenames to write config_file_contents to # home: str, override HOME env var; default: path of the temporary dir # xdg_config_home: str, set XDG_CONFIG_HOME # config_file_param: str, filename to pass to parse_config_file # All paths starting with '$TMPTESTDIR/' get evaluated relative to the temp dir. if not config_file_paths: config_file_paths = [] with tempfile.TemporaryDirectory() as tmp_test_dir: def _replace_path(s): if s and s.startswith('$TMPTESTDIR/'): return os.path.join(tmp_test_dir, s.split('/', 1)[1]) return s expected_result = (_replace_path(expected_result[0]), expected_result[1]) config_file_paths = [_replace_path(x) for x in config_file_paths] home = _replace_path(home) xdg_config_home = _replace_path(xdg_config_home) config_file_param = _replace_path(config_file_param) for p in config_file_paths: os.makedirs(os.path.dirname(p), exist_ok=True) with open(p, 'w') as fp: fp.write(config_file_contents) if home is None: home = tmp_test_dir env = {'HOME': home} if xdg_config_home is not None: env['XDG_CONFIG_HOME'] = xdg_config_home with _environ(**env): config_file_path, is_xdg, config = internetarchive.config.parse_config_file( config_file=config_file_param) > assert (config_file_path, is_xdg) == expected_result[0:2] E AssertionError: assert ('/usr/ports/...ia.ini', True) == ('/tmp/tmpp0b...g/.ia', False) E At index 0 diff: '/usr/ports/www/py-internetarchive/work-py39/internetarchive/ia.ini' != '/tmp/tmpp0brtuug/.ia' E Full diff: E - ('/tmp/tmpp0brtuug/.ia', False) E + ('/usr/ports/www/py-internetarchive/work-py39/internetarchive/ia.ini', True) /usr/ports/www/py-internetarchive/work-py39/internetarchive-3.5.0/tests/test_config.py:221: AssertionError _____________________________________________________________________________________ test_parse_config_file_existing_config_ia_and_dotia ______________________________________________________________________________________ def test_parse_config_file_existing_config_ia_and_dotia(): > _test_parse_config_file( expected_result=('$TMPTESTDIR/.config/ia.ini', False), config_file_paths=['$TMPTESTDIR/.config/ia.ini', '$TMPTESTDIR/.ia'], ) /usr/ports/www/py-internetarchive/work-py39/internetarchive-3.5.0/tests/test_config.py:245: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ expected_result = ('/tmp/tmpxgojawjh/.config/ia.ini', False), config_file_contents = '', config_file_paths = ['/tmp/tmpxgojawjh/.config/ia.ini', '/tmp/tmpxgojawjh/.ia'], home = '/tmp/tmpxgojawjh', xdg_config_home = None config_file_param = None def _test_parse_config_file( expected_result, config_file_contents='', config_file_paths=None, home=None, xdg_config_home=None, config_file_param=None): # expected_result: (config_file_path, is_xdg); config isn't compared. # config_file_contents: str # config_file_paths: list of filenames to write config_file_contents to # home: str, override HOME env var; default: path of the temporary dir # xdg_config_home: str, set XDG_CONFIG_HOME # config_file_param: str, filename to pass to parse_config_file # All paths starting with '$TMPTESTDIR/' get evaluated relative to the temp dir. if not config_file_paths: config_file_paths = [] with tempfile.TemporaryDirectory() as tmp_test_dir: def _replace_path(s): if s and s.startswith('$TMPTESTDIR/'): return os.path.join(tmp_test_dir, s.split('/', 1)[1]) return s expected_result = (_replace_path(expected_result[0]), expected_result[1]) config_file_paths = [_replace_path(x) for x in config_file_paths] home = _replace_path(home) xdg_config_home = _replace_path(xdg_config_home) config_file_param = _replace_path(config_file_param) for p in config_file_paths: os.makedirs(os.path.dirname(p), exist_ok=True) with open(p, 'w') as fp: fp.write(config_file_contents) if home is None: home = tmp_test_dir env = {'HOME': home} if xdg_config_home is not None: env['XDG_CONFIG_HOME'] = xdg_config_home with _environ(**env): config_file_path, is_xdg, config = internetarchive.config.parse_config_file( config_file=config_file_param) > assert (config_file_path, is_xdg) == expected_result[0:2] E AssertionError: assert ('/usr/ports/...ia.ini', True) == ('/tmp/tmpxgo...a.ini', False) E At index 0 diff: '/usr/ports/www/py-internetarchive/work-py39/internetarchive/ia.ini' != '/tmp/tmpxgojawjh/.config/ia.ini' E Full diff: E - ('/tmp/tmpxgojawjh/.config/ia.ini', False) E + ('/usr/ports/www/py-internetarchive/work-py39/internetarchive/ia.ini', True) /usr/ports/www/py-internetarchive/work-py39/internetarchive-3.5.0/tests/test_config.py:221: AssertionError _____________________________________________________________________________________________ test_write_config_file_existing_file _____________________________________________________________________________________________ def test_write_config_file_existing_file(): """Test that the permissions of the file are forced to 600""" > _test_write_config_file( dirs=['.config', '.config/internetarchive'], expected_config_file='.config/internetarchive/ia.ini', create_expected_file=True, expected_modes=[ ('.config/internetarchive/ia.ini', 0o600), ('.config/internetarchive', 0o777), ('.config', 0o777), ], ) /usr/ports/www/py-internetarchive/work-py39/internetarchive-3.5.0/tests/test_config.py:393: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ expected_config_file = '/tmp/tmpoej9n_ir/.config/internetarchive/ia.ini' expected_modes = [('/tmp/tmpoej9n_ir/.config/internetarchive/ia.ini', 384), ('/tmp/tmpoej9n_ir/.config/internetarchive', 511), ('/tmp/tmpoej9n_ir/.config', 511)] dirs = ['/tmp/tmpoej9n_ir/.config', '/tmp/tmpoej9n_ir/.config/internetarchive'], create_expected_file = True, config_file_param = None def _test_write_config_file( expected_config_file, expected_modes, dirs=None, create_expected_file=False, config_file_param=None): # expected_config_file: str # expected_modes: list of (path, mode) tuples # dirs: list of str, directories to create before running write_config_file # create_expected_file: bool, create the expected_config_file if True # config_file_param: str, filename to pass to write_config_file # Both dirs and the config file are created with mode 777 (minus umask). # All paths are evaluated relative to a temporary HOME. # Mode comparison accounts for the umask; expected_modes does not need to care about it. with tempfile.TemporaryDirectory() as temp_home_dir: expected_config_file = os.path.join(temp_home_dir, expected_config_file) if dirs: dirs = [os.path.join(temp_home_dir, d) for d in dirs] expected_modes = [(os.path.join(temp_home_dir, p), m) for p, m in expected_modes] if config_file_param: config_file_param = os.path.join(temp_home_dir, config_file_param) with _environ(HOME=temp_home_dir): # Need to account for the umask in the expected_modes comparisons. # The umask can't just be retrieved, so set and then restore previous value. umask = os.umask(0) os.umask(umask) if dirs: for d in dirs: os.mkdir(d) if create_expected_file: with open(expected_config_file, 'w') as fp: os.chmod(expected_config_file, 0o777) config_file = internetarchive.config.write_config_file({}, config_file_param) > assert config_file == expected_config_file E AssertionError: assert '/usr/ports/w...rchive/ia.ini' == '/tmp/tmpoej9...rchive/ia.ini' E - /tmp/tmpoej9n_ir/.config/internetarchive/ia.ini E + /usr/ports/www/py-internetarchive/work-py39/internetarchive/ia.ini /usr/ports/www/py-internetarchive/work-py39/internetarchive-3.5.0/tests/test_config.py:346: AssertionError _________________________________________________________________________________________________ test_parse_config_file_blank _________________________________________________________________________________________________ def test_parse_config_file_blank(): > _test_parse_config_file( expected_result=('$TMPTESTDIR/.config/internetarchive/ia.ini', True) ) /usr/ports/www/py-internetarchive/work-py39/internetarchive-3.5.0/tests/test_config.py:225: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ expected_result = ('/tmp/tmp236hie7u/.config/internetarchive/ia.ini', True), config_file_contents = '', config_file_paths = [], home = '/tmp/tmp236hie7u', xdg_config_home = None, config_file_param = None def _test_parse_config_file( expected_result, config_file_contents='', config_file_paths=None, home=None, xdg_config_home=None, config_file_param=None): # expected_result: (config_file_path, is_xdg); config isn't compared. # config_file_contents: str # config_file_paths: list of filenames to write config_file_contents to # home: str, override HOME env var; default: path of the temporary dir # xdg_config_home: str, set XDG_CONFIG_HOME # config_file_param: str, filename to pass to parse_config_file # All paths starting with '$TMPTESTDIR/' get evaluated relative to the temp dir. if not config_file_paths: config_file_paths = [] with tempfile.TemporaryDirectory() as tmp_test_dir: def _replace_path(s): if s and s.startswith('$TMPTESTDIR/'): return os.path.join(tmp_test_dir, s.split('/', 1)[1]) return s expected_result = (_replace_path(expected_result[0]), expected_result[1]) config_file_paths = [_replace_path(x) for x in config_file_paths] home = _replace_path(home) xdg_config_home = _replace_path(xdg_config_home) config_file_param = _replace_path(config_file_param) for p in config_file_paths: os.makedirs(os.path.dirname(p), exist_ok=True) with open(p, 'w') as fp: fp.write(config_file_contents) if home is None: home = tmp_test_dir env = {'HOME': home} if xdg_config_home is not None: env['XDG_CONFIG_HOME'] = xdg_config_home with _environ(**env): config_file_path, is_xdg, config = internetarchive.config.parse_config_file( config_file=config_file_param) > assert (config_file_path, is_xdg) == expected_result[0:2] E AssertionError: assert ('/usr/ports/...ia.ini', True) == ('/tmp/tmp236...ia.ini', True) E At index 0 diff: '/usr/ports/www/py-internetarchive/work-py39/internetarchive/ia.ini' != '/tmp/tmp236hie7u/.config/internetarchive/ia.ini' E Full diff: E - ('/tmp/tmp236hie7u/.config/internetarchive/ia.ini', True) E + ('/usr/ports/www/py-internetarchive/work-py39/internetarchive/ia.ini', True) /usr/ports/www/py-internetarchive/work-py39/internetarchive-3.5.0/tests/test_config.py:221: AssertionError ________________________________________________________________________________________________ test_get_config_no_config_file ________________________________________________________________________________________________ def test_get_config_no_config_file(): os.environ['HOME'] = '' config = internetarchive.config.get_config() > assert config == {} E AssertionError: assert {'cookies': {...ret': 'None'}} == {} E Left contains 3 more items: E {'cookies': {'logged-in-sig': 'None', 'logged-in-user': 'None'}, E 'general': {'screenname': 'None'}, E 's3': {'access': 'None', 'secret': 'None'}} E Full diff: E { E - ,... E E ...Full output truncated (6 lines hidden), use '-vv' to show /usr/ports/www/py-internetarchive/work-py39/internetarchive-3.5.0/tests/test_config.py:84: AssertionError ___________________________________________________________________________________________________ test_upload_queue_derive ___________________________________________________________________________________________________ nasa_item = Collection(identifier='nasa') def test_upload_queue_derive(nasa_item): with IaRequestsMock(assert_all_requests_are_fired=False) as rsps: _expected_headers = deepcopy(EXPECTED_S3_HEADERS) _expected_headers['x-archive-queue-derive'] = '1' del _expected_headers['x-archive-meta00-scanner'] rsps.add(responses.PUT, S3_URL_RE, adding_headers=_expected_headers) _responses = nasa_item.upload(NASA_METADATA_PATH, access_key='a', secret_key='b') for resp in _responses: headers = {k.lower(): str(v) for k, v in resp.request.headers.items()} del headers['x-archive-meta00-scanner'] assert 'user-agent' in headers del headers['user-agent'] > assert headers == _expected_headers E AssertionError: assert {'accept': '*... 'close', ...} == {'accept': '*... 'close', ...} E Omitting 7 identical items, use -vv to show E Differing items: E {'accept-encoding': 'gzip, deflate, br'} != {'accept-encoding': 'gzip, deflate'} E Full diff: E { E 'accept': '*/*', E - 'accept-encoding': 'gzip, deflate',... E E ...Full output truncated (9 lines hidden), use '-vv' to show /usr/ports/www/py-internetarchive/work-py39/internetarchive-3.5.0/tests/test_item.py:491: AssertionError ------------------------------------------------------------------------------------------------------ Captured log setup ------------------------------------------------------------------------------------------------------ DEBUG internetarchive.session:session.py:252 no metadata provided for "nasa", retrieving now. ------------------------------------------------------------------------------------------------------ Captured log call ------------------------------------------------------------------------------------------------------- INFO internetarchive.item:item.py:1095 uploaded nasa.json to https://s3.us.archive.org/nasa/nasa.json _________________________________________________________________________________________________________ test_upload __________________________________________________________________________________________________________ nasa_item = Collection(identifier='nasa') def test_upload(nasa_item): with IaRequestsMock(assert_all_requests_are_fired=False) as rsps: rsps.add(responses.PUT, S3_URL_RE, adding_headers=EXPECTED_S3_HEADERS) _responses = nasa_item.upload(NASA_METADATA_PATH, access_key='a', secret_key='b') for resp in _responses: request = resp.request headers = {k.lower(): str(v) for k, v in request.headers.items()} scanner_header = '%20'.join( resp.headers['x-archive-meta00-scanner'].split('%20')[:4]) headers['x-archive-meta00-scanner'] = scanner_header assert 'user-agent' in headers del headers['user-agent'] > assert headers == EXPECTED_S3_HEADERS E AssertionError: assert {'accept': '*... 'close', ...} == {'accept': '*... 'close', ...} E Omitting 8 identical items, use -vv to show E Differing items: E {'accept-encoding': 'gzip, deflate, br'} != {'accept-encoding': 'gzip, deflate'} E Full diff: E { E 'accept': '*/*', E - 'accept-encoding': 'gzip, deflate',... E E ...Full output truncated (10 lines hidden), use '-vv' to show /usr/ports/www/py-internetarchive/work-py39/internetarchive-3.5.0/tests/test_item.py:323: AssertionError ------------------------------------------------------------------------------------------------------ Captured log setup ------------------------------------------------------------------------------------------------------ DEBUG internetarchive.session:session.py:252 no metadata provided for "nasa", retrieving now. ------------------------------------------------------------------------------------------------------ Captured log call ------------------------------------------------------------------------------------------------------- INFO internetarchive.item:item.py:1095 uploaded nasa.json to https://s3.us.archive.org/nasa/nasa.json _____________________________________________________________________________________________________ test_upload_metadata _____________________________________________________________________________________________________ nasa_item = Collection(identifier='nasa') def test_upload_metadata(nasa_item): with IaRequestsMock(assert_all_requests_are_fired=False) as rsps: _expected_headers = deepcopy(EXPECTED_S3_HEADERS) del _expected_headers['x-archive-meta00-scanner'] _expected_headers['x-archive-meta00-foo'] = 'bar' _expected_headers['x-archive-meta00-subject'] = 'first' _expected_headers['x-archive-meta01-subject'] = 'second' _expected_headers['x-archive-meta00-baz'] = ( 'uri(%D0%9F%D0%BE%D1%87%D0%B5%D0%BC' '%D1%83%20%D0%B1%D1%8B%20%D0%B8%20%' 'D0%BD%D0%B5%D1%82...)') _expected_headers['x-archive-meta00-baz2'] = ( 'uri(%D0%9F%D0%BE%D1%87%D0%B5%D0%BC' '%D1%83%20%D0%B1%D1%8B%20%D0%B8%20%' 'D0%BD%D0%B5%D1%82...)') rsps.add(responses.PUT, S3_URL_RE, adding_headers=_expected_headers) md = { 'foo': 'bar', 'subject': ['first', 'second'], 'baz': 'Почему бы и нет...', 'baz2': ('\u041f\u043e\u0447\u0435\u043c\u0443 \u0431\u044b \u0438 ' '\u043d\u0435\u0442...'), } _responses = nasa_item.upload(NASA_METADATA_PATH, metadata=md, access_key='a', secret_key='b') for resp in _responses: request = resp.request del request.headers['x-archive-meta00-scanner'] headers = {k.lower(): str(v) for k, v in request.headers.items()} assert 'user-agent' in headers del headers['user-agent'] > assert headers == _expected_headers E AssertionError: assert {'accept': '*... 'close', ...} == {'accept': '*... 'close', ...} E Omitting 12 identical items, use -vv to show E Differing items: E {'accept-encoding': 'gzip, deflate, br'} != {'accept-encoding': 'gzip, deflate'} E Full diff: E { E 'accept': '*/*', E - 'accept-encoding': 'gzip, deflate',... E E ...Full output truncated (14 lines hidden), use '-vv' to show /usr/ports/www/py-internetarchive/work-py39/internetarchive-3.5.0/tests/test_item.py:398: AssertionError ------------------------------------------------------------------------------------------------------ Captured log setup ------------------------------------------------------------------------------------------------------ DEBUG internetarchive.session:session.py:252 no metadata provided for "nasa", retrieving now. ------------------------------------------------------------------------------------------------------ Captured log call ------------------------------------------------------------------------------------------------------- INFO internetarchive.item:item.py:1095 uploaded nasa.json to https://s3.us.archive.org/nasa/nasa.json =============================================================================================== 15 failed, 128 passed in 39.12s ================================================================================================ *** Error code 1
Version: 3.5.0 Python-3.9 FreeBSD 13.2
The text was updated successfully, but these errors were encountered:
No branches or pull requests
Version: 3.5.0
Python-3.9
FreeBSD 13.2
The text was updated successfully, but these errors were encountered: