def ensure_list_available_package_names_delegates_to_cached_index_when_failing_to_download_index(temp_dir): proxy_package_index = ProxyPackageIndex( "cached", temp_dir.join("packages"), "http://pypi.python.org") temp_dir.touch("packages", "spam-0.1.2.tar.gz") temp_dir.touch("packages", "eggs-0.1.2.tar.gz") cached_environment = os.environ os.environ = {} when(pypiproxy.packageindex.urllib2).urlopen( any_value()).thenRaise(URLError("Failed!")) actual_list = proxy_package_index.list_available_package_names() assert_that(actual_list).is_equal_to(['eggs', 'spam']) os.environ = cached_environment
def ensure_list_available_package_names_retrieves_index_from_pypi(temp_dir): proxy_package_index = ProxyPackageIndex( "cached", temp_dir.join("packages"), "http://pypi.python.org") package_stream = StringIO("""<!doctype html><html><body> <a href='alpha'>alpha</a><br/> <a href='beta'>beta</a><br/> <a href='gamma'>gamma</a><br/> </body></html>""") cached_environment = os.environ os.environ = {} when(pypiproxy.packageindex.urllib2).urlopen( any_value()).thenReturn(package_stream) actual_list = proxy_package_index.list_available_package_names() assert_that(actual_list).is_equal_to(['alpha', 'beta', 'gamma']) verify(pypiproxy.packageindex.urllib2).urlopen( "http://pypi.python.org/simple/") os.environ = cached_environment