##Skipping tests due to connection failures on Fedora build-system
##See https://github.com/PythonCharmers/python-future/issues/165 

--- a/tests/test_future/test_standard_library.orig.py	2014-11-21 12:52:03.000000000 +0100
+++ b/tests/test_future/test_standard_library.py	2015-09-02 11:37:36.808826777 +0200
@@ -318,7 +318,7 @@
         import builtins
         self.assertTrue(hasattr(builtins, 'tuple'))
 
-    # @unittest.skip("ssl support has been stripped out for now ...")
+    @unittest.skip("ConnectionError: ('Connection aborted.', gaierror(-3, 'Temporary failure in name resolution'))...")
     def test_urllib_request_ssl_redirect(self):
         """
         This site redirects to https://...
@@ -332,6 +332,7 @@
         # pprint(r.read().decode('utf-8'))
         self.assertTrue(True)
 
+    @unittest.skip("ConnectionError: ('Connection aborted.', gaierror(-3, 'Temporary failure in name resolution'))...")
     def test_moves_urllib_request_http(self):
         """
         This site (python-future.org) uses plain http (as of 2014-09-23).
@@ -343,6 +343,7 @@
         data = r.read()
         self.assertTrue(b'</html>' in data)
 
+    @unittest.skip("ConnectionError: ('Connection aborted.', gaierror(-3, 'Temporary failure in name resolution'))...")
     def test_urllib_request_http(self):
         """
         This site (python-future.org) uses plain http (as of 2014-09-23).

--- a/tests/test_future/test_requests.orig.py	2014-11-21 12:52:03.000000000 +0100
+++ b/tests/test_future/test_requests.py	2015-09-02 11:39:01.509378296 +0200
@@ -57,6 +57,7 @@
     This class tests whether the requests module conflicts with the
     standard library import hooks, as in issue #19.
     """
+    @unittest.skip("ConnectionError: ('Connection aborted.', gaierror(-3, 'Temporary failure in name resolution'))...")
     def test_remove_hooks_then_requests(self):
         code = """
             from future import standard_library
@@ -79,6 +80,7 @@
             self.assertTrue(True)
 
 
+    @unittest.skip("ConnectionError: ('Connection aborted.', gaierror(-3, 'Temporary failure in name resolution'))...")
     def test_requests_cm(self):
         """
         Tests whether requests can be used importing standard_library modules

