Beispiel #1
0
 def test_upload(self):
     "Test upload"
     self.check_pypi_server_available()
     self.check_testdist_available()
     if self.run_test_server:
         self.remove_package(self.dist_project, self.dist_version)
     d = os.path.join(HERE, self.testdir)
     data = self.load_package_metadata(d)
     md = Metadata()
     md.update(self.get_index_metadata(data))
     #import pdb; pdb.set_trace()
     self.index.gpg_home = os.path.join(HERE, 'keys')
     try:
         zip_name = os.path.join(HERE, '%s.zip' % self.testdir)
         self.assertRaises(DistlibException, self.index.upload_file, md,
                           'random-' + zip_name, 'Test User', 'tuser')
         response = self.index.upload_file(md, zip_name,
                                           'Test User', 'tuser')
         self.assertEqual(response.code, 200)
         if self.run_test_server:
             fn = os.path.join(HERE, 'packages', os.path.basename(zip_name))
             self.assertTrue(os.path.exists(fn))
     except HTTPError as e:
         # Treat as success if it already exists
         if e.getcode() != 400 or 'already exists' not in e.msg:
             raise
Beispiel #2
0
 def test_register(self):
     "Test registration"
     self.check_pypi_server_available()
     self.check_testdist_available()
     d = os.path.join(HERE, self.testdir)
     data = self.load_package_metadata(d)
     md = Metadata()
     self.assertRaises(MetadataMissingError, self.index.register, md)
     md['Name'] = self.dist_project
     self.assertRaises(MetadataMissingError, self.index.register, md)
     md.update(self.get_index_metadata(data))
     response = self.index.register(md)
     self.assertEqual(response.code, 200)
Beispiel #3
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)
Beispiel #4
0
    def test_mapping_api(self):
        content = self.get_file_contents('PKG-INFO')
        metadata = Metadata(fileobj=StringIO(content))
        self.assertIn('Version', metadata.keys())
        self.assertIn('0.5', metadata.values())
        self.assertIn(('Version', '0.5'), metadata.items())

        metadata.update({'version': '0.6'})
        self.assertEqual(metadata['Version'], '0.6')
        metadata.update([('version', '0.7')])
        self.assertEqual(metadata['Version'], '0.7')
        # use a kwarg to update
        metadata.update(version='0.6')
        self.assertEqual(metadata['Version'], '0.6')

        # make sure update method checks values like the set method does
        metadata.update({'version': '1--2'})
        self.assertEqual(len(self.get_logs()), 1)

        self.assertEqual(list(metadata), metadata.keys())