Beispiel #1
0
 def test_upload_documentation(self):
     "Test upload of documentation"
     raise unittest.SkipTest('Skipped, as pythonhosted.org is being '
                             'de-emphasised and this functionality may '
                             'no longer be available')
     self.check_pypi_server_available()
     self.check_testdist_available()
     d = os.path.join(HERE, self.testdir)
     data = self.load_package_metadata(d)
     md = Metadata(mapping=data)
     d = os.path.join(d, 'doc')
     # Non-existent directory
     self.assertRaises(DistlibException, self.index.upload_documentation,
                       md, d + '-random')
     # Directory with no index.html
     self.assertRaises(DistlibException, self.index.upload_documentation,
                       md, HERE)
     response = self.index.upload_documentation(md, d)
     self.assertEqual(response.code, 200)
     if not self.run_test_server:
         url = 'http://packages.python.org/%s/' % self.dist_project
         response = urlopen(url)
         self.assertEqual(response.code, 200)
         data = response.read()
         expected = b'This is dummy documentation'
         self.assertIn(expected, data)
Beispiel #2
0
 def setUpClass(cls):
     if cls.run_test_server:
         cls.server = None
         server_script = os.path.join(HERE, 'pypi-server-standalone.py')
         if not os.path.exists(server_script):
             logger.debug('test server not available - some tests '
                          'will be skipped.')
             return
         pwdfn = os.path.join(HERE, 'passwords')
         if not os.path.exists(pwdfn):   # pragma: no cover
             with open(pwdfn, 'w') as f:
                 f.write('test:secret\n')
         pkgdir = os.path.join(HERE, 'packages')
         if not os.path.isdir(pkgdir):   # pragma: no cover
             os.mkdir(pkgdir)
         cls.sink = sink = open(os.devnull, 'w')
         cmd = [sys.executable, 'pypi-server-standalone.py',
                '-P', 'passwords', 'packages']
         cls.server = subprocess.Popen(cmd, stdout=sink, stderr=sink,
                                       cwd=HERE)
         # wait for the server to start up
         response = None
         while response is None:
             try:
                 response = urlopen(cls.test_server_url)
             except URLError:
                 pass
Beispiel #3
0
 def setUpClass(cls):
     if cls.run_test_server:
         cls.server = None
         server_script = os.path.join(HERE, 'pypi-server-standalone.py')
         if not os.path.exists(server_script):
             logger.debug('test server not available - some tests '
                          'will be skipped.')
             return
         pwdfn = os.path.join(HERE, 'passwords')
         if not os.path.exists(pwdfn):  # pragma: no cover
             with open(pwdfn, 'w') as f:
                 f.write('test:secret\n')
         pkgdir = os.path.join(HERE, 'packages')
         if not os.path.isdir(pkgdir):  # pragma: no cover
             os.mkdir(pkgdir)
         cls.sink = sink = open(os.devnull, 'w')
         cmd = [
             sys.executable, 'pypi-server-standalone.py', '-P', 'passwords',
             'packages'
         ]
         cls.server = subprocess.Popen(cmd,
                                       stdout=sink,
                                       stderr=sink,
                                       cwd=HERE)
         # wait for the server to start up
         response = None
         while response is None:
             try:
                 response = urlopen(cls.test_server_url)
             except URLError:
                 pass
Beispiel #4
0
 def test_upload_documentation(self):
     "Test upload of documentation"
     raise unittest.SkipTest('Skipped, as pythonhosted.org is being '
                             'de-emphasised and this functionality may '
                             'no longer be available')
     self.check_pypi_server_available()
     self.check_testdist_available()
     d = os.path.join(HERE, self.testdir)
     data = self.load_package_metadata(d)
     md = Metadata(mapping=data)
     d = os.path.join(d, 'doc')
     # Non-existent directory
     self.assertRaises(DistlibException, self.index.upload_documentation,
                       md, d+'-random')
     # Directory with no index.html
     self.assertRaises(DistlibException, self.index.upload_documentation,
                       md, HERE)
     response = self.index.upload_documentation(md, d)
     self.assertEqual(response.code, 200)
     if not self.run_test_server:
         url = 'http://packages.python.org/%s/' % self.dist_project
         response = urlopen(url)
         self.assertEqual(response.code, 200)
         data = response.read()
         expected = b'This is dummy documentation'
         self.assertIn(expected, data)
Beispiel #5
0
 def setUpClass(cls):
     if cls.run_test_server:
         cls.server = None
         server_script = os.path.join(HERE, 'pypi-server-standalone.py')
         if not os.path.exists(server_script):
             logger.debug('test server not available - some tests '
                          'will be skipped.')
             return
         pwdfn = os.path.join(HERE, 'passwords')
         if not os.path.exists(pwdfn):  # pragma: no cover
             with open(pwdfn, 'w') as f:
                 f.write('test:secret\n')
         pkgdir = os.path.join(HERE, 'packages')
         if not os.path.isdir(pkgdir):  # pragma: no cover
             os.mkdir(pkgdir)
         fd, cls.sinkfile = tempfile.mkstemp(suffix='.log',
                                             prefix='distlib-pypi-')
         os.close(fd)
         cls.sink = sink = open(cls.sinkfile, 'w')
         cmd = [
             sys.executable, 'pypi-server-standalone.py', '--interface',
             '127.0.0.1', '--port', TEST_SERVER_PORT, '-P', 'passwords',
             'packages'
         ]
         cls.server = subprocess.Popen(cmd,
                                       stdout=sink,
                                       stderr=sink,
                                       cwd=HERE)
         # wait for the server to start up
         response = None
         tries = 20
         timeout = 0.5
         count = 0
         while response is None:
             try:
                 count += 1
                 time.sleep(timeout)
                 response = urlopen(cls.test_server_url)
                 if response.getcode() != 200:
                     response = None
                     break
                 # In case some other server is listening on the same port ...
                 # need to check the actual response for pypiserver-specific content
                 data = response.read()
                 if b'Welcome to pypiserver!' not in data:
                     response = None
                     break
             except URLError:
                 if count < tries:
                     pass
                 else:
                     break
         if response is None or cls.server.poll() is not None:
             logger.warning('PyPI test server could not be run')
             cls.server = None
             cls.sink.close()
             os.remove(cls.sinkfile)
Beispiel #6
0
 def test_upload_documentation(self):
     "Test upload of documentation"
     self.check_pypi_server_available()
     self.check_testdist_available()
     d = os.path.join(HERE, self.testdir)
     data = self.load_package_metadata(d)
     md = Metadata()
     md.update(self.get_index_metadata(data))
     d = os.path.join(d, 'doc')
     # Non-existent directory
     self.assertRaises(DistlibException, self.index.upload_documentation,
                       md, d+'-random')
     # Directory with no index.html
     self.assertRaises(DistlibException, self.index.upload_documentation,
                       md, HERE)
     response = self.index.upload_documentation(md, d)
     self.assertEqual(response.code, 200)
     if not self.run_test_server:
         url = 'http://packages.python.org/%s/' % self.dist_project
         response = urlopen(url)
         self.assertEqual(response.code, 200)
         data = response.read()
         expected = b'This is dummy documentation'
         self.assertIn(expected, data)