Skip to content

bd2k/util/ec2/test/test_credentials.py::CredentialsTest::test_metadata_credential_caching FAILED #18

@mr-c

Description

@mr-c
python2.7 setup.py test --pytest-args "-vv --assert=plain src"
running test
Searching for boto==2.38.0
Reading https://pypi.python.org/simple/boto/
Downloading https://pypi.python.org/packages/ed/bb/52b97bed7daf481fcf355fca49655e3f2b44bb8da079a94a9da420eeda06/boto-2.38.0-py2.py3-none-any.whl#md5=dd00fcddc668880494987bcb6102ecf2
Best match: boto 2.38.0
Processing boto-2.38.0-py2.py3-none-any.whl
Installing boto-2.38.0-py2.py3-none-any.whl to /home/michael/src/bd2k-python-lib/.eggs

Installed /home/michael/src/bd2k-python-lib/.eggs/boto-2.38.0-py2.7.egg
Searching for lockfile==0.11.0
Reading https://pypi.python.org/simple/lockfile/
Downloading https://pypi.python.org/packages/73/83/9474c4a257b75b9a08aacd7de0a30ad97d9cdaeb1cbf48efa46bcb1969ea/lockfile-0.11.0-py2-none-any.whl#md5=1a6f33ce16532d9ec8ba019a4f77f3b3
Best match: lockfile 0.11.0
Processing lockfile-0.11.0-py2-none-any.whl
Installing lockfile-0.11.0-py2-none-any.whl to /home/michael/src/bd2k-python-lib/.eggs
writing requirements to /home/michael/src/bd2k-python-lib/.eggs/lockfile-0.11.0-py2.7.egg/EGG-INFO/requires.txt

Installed /home/michael/src/bd2k-python-lib/.eggs/lockfile-0.11.0-py2.7.egg
Searching for mock==1.0.1
Reading https://pypi.python.org/simple/mock/
Downloading https://pypi.python.org/packages/a2/52/7edcd94f0afb721a2d559a5b9aae8af4f8f2c79bc63fdbe8a8a6c9b23bbe/mock-1.0.1.tar.gz#md5=c3971991738caa55ec7c356bbc154ee2
Best match: mock 1.0.1
Processing mock-1.0.1.tar.gz
Writing /tmp/easy_install-aSaBHj/mock-1.0.1/setup.cfg
Running mock-1.0.1/setup.py -q bdist_egg --dist-dir /tmp/easy_install-aSaBHj/mock-1.0.1/egg-dist-tmp-NRKv9e
warning: no files found matching '*.png' under directory 'docs'
warning: no files found matching '*.css' under directory 'docs'
warning: no files found matching '*.html' under directory 'docs'
warning: no files found matching '*.js' under directory 'docs'
zip_safe flag not set; analyzing archive contents...
Moving mock-1.0.1-py2.7.egg to /home/michael/src/bd2k-python-lib/.eggs

Installed /home/michael/src/bd2k-python-lib/.eggs/mock-1.0.1-py2.7.egg
Searching for pytest==2.7.2
Reading https://pypi.python.org/simple/pytest/
Downloading https://pypi.python.org/packages/35/3e/76e99f39c1cc04e9701d447a5667d9ec45f724ca11b6f5c797492339aef1/pytest-2.7.2-py2.py3-none-any.whl#md5=1b636c4310d9a3cd5f516e1a9086ae06
Best match: pytest 2.7.2
Processing pytest-2.7.2-py2.py3-none-any.whl
Installing pytest-2.7.2-py2.py3-none-any.whl to /home/michael/src/bd2k-python-lib/.eggs
writing requirements to /home/michael/src/bd2k-python-lib/.eggs/pytest-2.7.2-py2.7.egg/EGG-INFO/requires.txt

Installed /home/michael/src/bd2k-python-lib/.eggs/pytest-2.7.2-py2.7.egg
Searching for pbr!=0.7,<1.0,>=0.6
Reading https://pypi.python.org/simple/pbr/
Downloading https://pypi.python.org/packages/a8/87/23e26858c1a45ff7ed352261e34fb99b33a97bfac0a6e5ece8df7c983d02/pbr-0.11.1-py2.py3-none-any.whl#md5=0b7852a0a626f06c4468a3ffa4187af8
Best match: pbr 0.11.1
Processing pbr-0.11.1-py2.py3-none-any.whl
Installing pbr-0.11.1-py2.py3-none-any.whl to /home/michael/src/bd2k-python-lib/.eggs
writing requirements to /home/michael/src/bd2k-python-lib/.eggs/pbr-0.11.1-py2.7.egg/EGG-INFO/requires.txt

Installed /home/michael/src/bd2k-python-lib/.eggs/pbr-0.11.1-py2.7.egg
Searching for py>=1.4.29
Reading https://pypi.python.org/simple/py/
Downloading https://pypi.python.org/packages/67/a5/f77982214dd4c8fd104b066f249adea2c49e25e8703d284382eb5e9ab35a/py-1.5.3-py2.py3-none-any.whl#md5=3184fb17d224b073117a25336040d7c7
Best match: py 1.5.3
Processing py-1.5.3-py2.py3-none-any.whl
Installing py-1.5.3-py2.py3-none-any.whl to /home/michael/src/bd2k-python-lib/.eggs

Installed /home/michael/src/bd2k-python-lib/.eggs/py-1.5.3-py2.7.egg
running egg_info
creating src/bd2k_python_lib.egg-info
writing pbr to src/bd2k_python_lib.egg-info/pbr.json
writing requirements to src/bd2k_python_lib.egg-info/requires.txt
writing src/bd2k_python_lib.egg-info/PKG-INFO
writing namespace_packages to src/bd2k_python_lib.egg-info/namespace_packages.txt
writing top-level names to src/bd2k_python_lib.egg-info/top_level.txt
writing dependency_links to src/bd2k_python_lib.egg-info/dependency_links.txt
writing manifest file 'src/bd2k_python_lib.egg-info/SOURCES.txt'
reading manifest file 'src/bd2k_python_lib.egg-info/SOURCES.txt'
writing manifest file 'src/bd2k_python_lib.egg-info/SOURCES.txt'
running build_ext
============================= test session starts ==============================
platform linux2 -- Python 2.7.13 -- py-1.5.3 -- pytest-2.7.2 -- /home/michael/src/bd2k-python-lib/env/bin/python2.7
rootdir: /home/michael/src/bd2k-python-lib, inifile: setup.cfg
collecting ... collected 45 items

src/bd2k/util/__init__.py::bd2k.util.ilen PASSED
src/bd2k/util/__init__.py::bd2k.util.parse_iso_utc PASSED
src/bd2k/util/__init__.py::bd2k.util.properties PASSED
src/bd2k/util/__init__.py::bd2k.util.rfc3339_datetime_re PASSED
src/bd2k/util/collections.py::bd2k.util.collections.OrderedSet PASSED
src/bd2k/util/collections.py::bd2k.util.collections.rindex PASSED
src/bd2k/util/d32.py::bd2k.util.d32.D32.decode PASSED
src/bd2k/util/d32.py::bd2k.util.d32.D32.encode PASSED
src/bd2k/util/d64.py::bd2k.util.d64.D64.decode PASSED
src/bd2k/util/d64.py::bd2k.util.d64.D64.encode PASSED
src/bd2k/util/exceptions.py::bd2k.util.exceptions.require PASSED
src/bd2k/util/expando.py::bd2k.util.expando.Expando PASSED
src/bd2k/util/expando.py::bd2k.util.expando.MagicExpando PASSED
src/bd2k/util/files.py::bd2k.util.files.copyfileobj PASSED
src/bd2k/util/fnmatch.py::bd2k.util.fnmatch.fnmatch PASSED
src/bd2k/util/hashes.py::bd2k.util.hashes.hash_json PASSED
src/bd2k/util/humanize.py::bd2k.util.humanize.bytes2human PASSED
src/bd2k/util/humanize.py::bd2k.util.humanize.human2bytes PASSED
src/bd2k/util/iterables.py::bd2k.util.iterables.common_prefix PASSED
src/bd2k/util/iterables.py::bd2k.util.iterables.concat PASSED
src/bd2k/util/iterables.py::bd2k.util.iterables.crush PASSED
src/bd2k/util/iterables.py::bd2k.util.iterables.disparate_suffix PASSED
src/bd2k/util/objects.py::bd2k.util.objects.InnerClass PASSED
src/bd2k/util/objects.py::bd2k.util.objects.abstractclassmethod PASSED
src/bd2k/util/objects.py::bd2k.util.objects.abstractstaticmethod PASSED
src/bd2k/util/processes.py::bd2k.util.processes.which PASSED
src/bd2k/util/retry.py::bd2k.util.retry.retry PASSED
src/bd2k/util/retry.py::bd2k.util.retry.retry_http PASSED
src/bd2k/util/strings.py::bd2k.util.strings.interpolate PASSED
src/bd2k/util/strings.py::bd2k.util.strings.interpolate_dict PASSED
src/bd2k/util/strings.py::bd2k.util.strings.to_english PASSED
src/bd2k/util/threading.py::bd2k.util.threading.ExceptionalThread PASSED
src/bd2k/util/threading.py::bd2k.util.threading.defaultlocal PASSED
src/bd2k/util/throttle.py::bd2k.util.throttle.throttle PASSED
src/bd2k/util/ec2/credentials.py::bd2k.util.ec2.credentials.datetime_to_str PASSED
src/bd2k/util/ec2/credentials.py::bd2k.util.ec2.credentials.str_to_datetime PASSED
src/bd2k/util/ec2/test/test_credentials.py::CredentialsTest::test_metadata_credential_caching FAILED
src/bd2k/util/test/test_d32.py::TestD32::test PASSED
src/bd2k/util/test/test_d64.py::TestD64::test PASSED
src/bd2k/util/test/test_panic.py::TestPanic::test_nested_panic PASSED
src/bd2k/util/test/test_panic.py::TestPanic::test_panic PASSED
src/bd2k/util/test/test_panic.py::TestPanic::test_panic_by_hand PASSED
src/bd2k/util/test/test_panic.py::TestPanic::test_panic_with_secondary PASSED
src/bd2k/util/test/test_strings.py::TestStrings::test_interpolate PASSED
src/bd2k/util/xml/builder.py::bd2k.util.xml.builder.ElementMaker PASSED

=================================== FAILURES ===================================
_______________ CredentialsTest.test_metadata_credential_caching _______________

self = <bd2k.util.ec2.test.test_credentials.CredentialsTest testMethod=test_metadata_credential_caching>

    def test_metadata_credential_caching( self ):
        """
            Brute forces many concurrent requests for getting temporary credentials. If you comment
            out the calls to enable_metadata_credential_caching, you should see some failures due to
            requests timing out. The test will also take much longer in that case.
            """
        num_tests = 1000
        num_processes = 32
        # Get key without caching
        access_key = get_access_key( )
        self.assertFalse( os.path.exists( self.cache_path ) )
        enable_metadata_credential_caching( )
        # Again for idempotence
        enable_metadata_credential_caching( )
        try:
            futures = [ ]
            from multiprocessing import Pool
            pool = Pool( num_processes )
            try:
                for i in range( num_tests ):
                    futures.append( pool.apply_async( get_access_key ) )
            except:
                pool.close( )
                pool.terminate( )
                raise
            else:
                pool.close( )
                pool.join( )
        finally:
            disable_metadata_credential_caching( )
            # Again for idempotence
            disable_metadata_credential_caching( )
>       self.assertEquals( access_key is not None, os.path.exists( self.cache_path ) )
E       AssertionError: False != True

src/bd2k/util/ec2/test/test_credentials.py:78: AssertionError
----------------------------- Captured stderr call -----------------------------
ERROR:boto:Caught exception reading instance data
Traceback (most recent call last):
  File "/home/michael/src/bd2k-python-lib/.eggs/boto-2.38.0-py2.7.egg/boto/utils.py", line 210, in retry_url
    r = opener.open(req, timeout=timeout)
  File "/usr/lib/python2.7/urllib2.py", line 429, in open
    response = self._open(req, data)
  File "/usr/lib/python2.7/urllib2.py", line 447, in _open
    '_open', req)
  File "/usr/lib/python2.7/urllib2.py", line 407, in _call_chain
    result = func(*args)
  File "/usr/lib/python2.7/urllib2.py", line 1228, in http_open
    return self.do_open(httplib.HTTPConnection, req)
  File "/usr/lib/python2.7/urllib2.py", line 1198, in do_open
    raise URLError(err)
URLError: <urlopen error timed out>
ERROR:boto:Unable to read instance data, giving up
ERROR:boto:Caught exception reading instance data
Traceback (most recent call last):
  File "/home/michael/src/bd2k-python-lib/.eggs/boto-2.38.0-py2.7.egg/boto/utils.py", line 210, in retry_url
    r = opener.open(req, timeout=timeout)
  File "/usr/lib/python2.7/urllib2.py", line 429, in open
    response = self._open(req, data)
  File "/usr/lib/python2.7/urllib2.py", line 447, in _open
    '_open', req)
  File "/usr/lib/python2.7/urllib2.py", line 407, in _call_chain
    result = func(*args)
  File "/usr/lib/python2.7/urllib2.py", line 1228, in http_open
    return self.do_open(httplib.HTTPConnection, req)
  File "/usr/lib/python2.7/urllib2.py", line 1198, in do_open
    raise URLError(err)
URLError: <urlopen error timed out>
ERROR:boto:Unable to read instance data, giving up
===================== 1 failed, 44 passed in 16.70 seconds =====================
Makefile:72: recipe for target 'test' failed
make: *** [test] Error 1

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions