def test_upload(self): path = os.path.join(self.tmp_dir, 'xxx') self.write_file(path) command, pyversion, filename = 'xxx', '3.3', path dist_files = [(command, pyversion, filename)] # let's run it dist = self.create_dist(dist_files=dist_files, author='dédé')[1] cmd = upload(dist) cmd.ensure_finalized() cmd.repository = self.pypi.full_address cmd.run() # what did we send? handler, request_data = self.pypi.requests[-1] headers = handler.headers self.assertIn('dédé'.encode('utf-8'), request_data) self.assertIn(b'xxx', request_data) self.assertEqual(int(headers['content-length']), len(request_data)) self.assertLess(int(headers['content-length']), 2500) self.assertTrue(headers['content-type'].startswith( 'multipart/form-data')) self.assertEqual(handler.command, 'POST') self.assertNotIn('\n', headers['authorization'])
def test_saved_password(self): # file with no password self.write_file(self.rc, PYPIRC_NOPASSWORD) # make sure it passes dist = Distribution() cmd = upload(dist) cmd.ensure_finalized() self.assertEqual(cmd.password, None) # make sure we get it as well, if another command # initialized it at the dist level dist.password = '******' cmd = upload(dist) cmd.finalize_options() self.assertEqual(cmd.password, 'xxx')
def test_finalize_options_unsigned_identity_raises_exception(self): self.write_file(self.rc, PYPIRC) dist = Distribution() cmd = upload(dist) cmd.identity = True cmd.sign = False self.assertRaises(PackagingOptionError, cmd.finalize_options)
def test_upload_docs(self): path = os.path.join(self.tmp_dir, 'xxx') self.write_file(path) command, pyversion, filename = 'xxx', '3.3', path dist_files = [(command, pyversion, filename)] docs_path = os.path.join(self.tmp_dir, "build", "docs") os.makedirs(docs_path) self.write_file((docs_path, "index.html"), "yellow") self.write_file(self.rc, PYPIRC) # let's run it dist = self.create_dist(dist_files=dist_files, author='dédé')[1] cmd = upload(dist) cmd.get_finalized_command("build").run() cmd.upload_docs = True cmd.ensure_finalized() cmd.repository = self.pypi.full_address os.chdir(self.tmp_dir) cmd.run() handler, request_data = self.pypi.requests[-1] action, name, content = request_data.split( "----------------GHSKFJDLGDS7543FJKLFHRE75642756743254" .encode())[1:4] self.assertIn(b'name=":action"', action) self.assertIn(b'doc_upload', action)
def test_finalize_options(self): # new format self.write_file(self.rc, PYPIRC) dist = Distribution() cmd = upload(dist) cmd.finalize_options() for attr, expected in (('username', 'me'), ('password', 'secret'), ('realm', 'pypi'), ('repository', 'http://pypi.python.org/pypi')): self.assertEqual(getattr(cmd, attr), expected)
def test_upload_without_files_raises_exception(self): dist = Distribution() cmd = upload(dist) self.assertRaises(PackagingOptionError, cmd.run)