Skip to content
New issue

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

15 tests fail #596

Open
yurivict opened this issue Jun 13, 2023 · 0 comments
Open

15 tests fail #596

yurivict opened this issue Jun 13, 2023 · 0 comments

Comments

@yurivict
Copy link
Contributor

=========================================================================================================== 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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant