diff options
| author | Konrad Delong <konryd@gmail.com> | 2010-07-22 19:31:26 +0200 |
|---|---|---|
| committer | Konrad Delong <konryd@gmail.com> | 2010-07-22 19:31:26 +0200 |
| commit | 5b3987f65d620785e96228f1af5909e0117135cc (patch) | |
| tree | 2628ec9b7357453e2fc39f87788410f42370bd21 /src | |
| parent | c568a90237760f05cd71390a3963f5627031d994 (diff) | |
| download | disutils2-5b3987f65d620785e96228f1af5909e0117135cc.tar.gz | |
added upload_docs option to upload command
Diffstat (limited to 'src')
| -rw-r--r-- | src/distutils2/command/upload.py | 8 | ||||
| -rw-r--r-- | src/distutils2/tests/test_upload.py | 32 |
2 files changed, 40 insertions, 0 deletions
diff --git a/src/distutils2/command/upload.py b/src/distutils2/command/upload.py index 14fe119..4ada715 100644 --- a/src/distutils2/command/upload.py +++ b/src/distutils2/command/upload.py @@ -26,6 +26,7 @@ class upload(PyPIRCCommand): ('sign', 's', 'sign files to upload using gpg'), ('identity=', 'i', 'GPG identity used to sign files'), + ('upload-docs', None, 'Run upload_docs as well'), ] boolean_options = PyPIRCCommand.boolean_options + ['sign'] @@ -37,6 +38,7 @@ class upload(PyPIRCCommand): self.show_response = 0 self.sign = False self.identity = None + self.upload_docs = False def finalize_options(self): PyPIRCCommand.finalize_options(self) @@ -61,6 +63,12 @@ class upload(PyPIRCCommand): raise DistutilsOptionError("No dist file created in earlier command") for command, pyversion, filename in self.distribution.dist_files: self.upload_file(command, pyversion, filename) + if self.upload_docs: + upload_docs = self.get_finalized_command("upload_docs") + upload_docs.repository = self.repository + upload_docs.username = self.username + upload_docs.password = self.password + upload_docs.run() # XXX to be refactored with register.post_to_server def upload_file(self, command, pyversion, filename): diff --git a/src/distutils2/tests/test_upload.py b/src/distutils2/tests/test_upload.py index 5ca88a1..fb81d4f 100644 --- a/src/distutils2/tests/test_upload.py +++ b/src/distutils2/tests/test_upload.py @@ -76,6 +76,38 @@ class UploadTestCase(PyPIServerTestCase, PyPIRCCommandTestCase): self.assertEqual(handler.command, 'POST') self.assertNotIn('\n', headers['authorization']) + def test_upload_docs(self): + path = os.path.join(self.tmp_dir, 'xxx') + self.write_file(path) + command, pyversion, filename = 'xxx', '2.6', path + dist_files = [(command, pyversion, filename)] + docs_path = os.path.join(self.tmp_dir, "build", "docs") + os.makedirs(docs_path) + self.write_file(os.path.join(docs_path, "index.html"), "yellow") + self.write_file(self.rc, PYPIRC) + + # lets run it + pkg_dir, dist = self.create_dist(dist_files=dist_files, author=u'dédé') + + cmd = upload(dist) + cmd.get_finalized_command("build").run() + cmd.upload_docs = True + cmd.ensure_finalized() + cmd.repository = self.pypi.full_address + try: + prev_dir = os.getcwd() + os.chdir(self.tmp_dir) + cmd.run() + finally: + os.chdir(prev_dir) + + handler, request_data = self.pypi.requests[-1] + action, name, content =\ + request_data.split("----------------GHSKFJDLGDS7543FJKLFHRE75642756743254")[1:4] + + self.assertIn('name=":action"', action) + self.assertIn("doc_upload", action) + def test_suite(): return unittest.makeSuite(UploadTestCase) |
