Mercurial > hg > simpypi
annotate tests/test_ttw.txt @ 81:c61d0fe16509
add links
| author | Jeff Hammel <jhammel@mozilla.com> |
|---|---|
| date | Mon, 05 Mar 2012 09:24:47 -0800 |
| parents | 10f343c483ee |
| children |
| rev | line source |
|---|---|
| 60 | 1 Test Through The Web |
| 2 ==================== | |
| 3 | |
| 4 Test ``simpypi`` through the web with a test server. | |
| 5 | |
| 6 The obligatory imports:: | |
| 7 | |
|
65
83327bc715be
make the virtualenv convenience method return more stuff
Jeff Hammel <jhammel@mozilla.com>
parents:
62
diff
changeset
|
8 >>> import os |
|
66
a2ba66be2e31
tests mysteriously fail now
Jeff Hammel <jhammel@mozilla.com>
parents:
65
diff
changeset
|
9 >>> import shutil |
|
a2ba66be2e31
tests mysteriously fail now
Jeff Hammel <jhammel@mozilla.com>
parents:
65
diff
changeset
|
10 >>> import subprocess |
|
a2ba66be2e31
tests mysteriously fail now
Jeff Hammel <jhammel@mozilla.com>
parents:
65
diff
changeset
|
11 >>> import tempfile |
| 62 | 12 >>> import urllib2 |
| 60 | 13 >>> from simpypi.factory import factory |
| 14 | |
| 15 Create a WSGI app:: | |
| 16 | |
| 17 >>> app = factory(directory=directory) | |
| 61 | 18 |
| 19 Now wrap it in a server:: | |
| 20 | |
| 62 | 21 >>> port = 64321 |
| 22 >>> server = testserver(app, 'localhost', port) | |
| 61 | 23 >>> server.start() |
| 62 | 24 >>> url = 'http://localhost:%d/' % port |
| 25 | |
| 26 Get the home page:: | |
| 27 | |
| 28 >>> resource = urllib2.urlopen(url) | |
| 29 >>> contents = resource.read() | |
| 30 >>> 'Python Package Index' in contents | |
| 31 True | |
| 32 | |
| 33 Get the index page:: | |
| 34 | |
|
69
10f343c483ee
install and import the thing
Jeff Hammel <jhammel@mozilla.com>
parents:
68
diff
changeset
|
35 >>> index = url + 'index/' |
|
10f343c483ee
install and import the thing
Jeff Hammel <jhammel@mozilla.com>
parents:
68
diff
changeset
|
36 >>> resource = urllib2.urlopen(index) |
| 62 | 37 >>> contents = resource.read() |
| 38 >>> 'Simple Index' in contents | |
| 39 True | |
| 61 | 40 |
|
65
83327bc715be
make the virtualenv convenience method return more stuff
Jeff Hammel <jhammel@mozilla.com>
parents:
62
diff
changeset
|
41 |
|
83327bc715be
make the virtualenv convenience method return more stuff
Jeff Hammel <jhammel@mozilla.com>
parents:
62
diff
changeset
|
42 There should be no files to start out with:: |
|
83327bc715be
make the virtualenv convenience method return more stuff
Jeff Hammel <jhammel@mozilla.com>
parents:
62
diff
changeset
|
43 |
|
83327bc715be
make the virtualenv convenience method return more stuff
Jeff Hammel <jhammel@mozilla.com>
parents:
62
diff
changeset
|
44 >>> os.listdir(directory) |
|
83327bc715be
make the virtualenv convenience method return more stuff
Jeff Hammel <jhammel@mozilla.com>
parents:
62
diff
changeset
|
45 [] |
|
83327bc715be
make the virtualenv convenience method return more stuff
Jeff Hammel <jhammel@mozilla.com>
parents:
62
diff
changeset
|
46 |
|
83327bc715be
make the virtualenv convenience method return more stuff
Jeff Hammel <jhammel@mozilla.com>
parents:
62
diff
changeset
|
47 Upload a file:: |
|
83327bc715be
make the virtualenv convenience method return more stuff
Jeff Hammel <jhammel@mozilla.com>
parents:
62
diff
changeset
|
48 |
|
83327bc715be
make the virtualenv convenience method return more stuff
Jeff Hammel <jhammel@mozilla.com>
parents:
62
diff
changeset
|
49 >>> path = os.path.join(here, 'HelloWorld-0.0.tar.gz') |
|
83327bc715be
make the virtualenv convenience method return more stuff
Jeff Hammel <jhammel@mozilla.com>
parents:
62
diff
changeset
|
50 >>> upload = MultiPartForm() |
|
83327bc715be
make the virtualenv convenience method return more stuff
Jeff Hammel <jhammel@mozilla.com>
parents:
62
diff
changeset
|
51 >>> upload.add_file('package', path) |
|
83327bc715be
make the virtualenv convenience method return more stuff
Jeff Hammel <jhammel@mozilla.com>
parents:
62
diff
changeset
|
52 >>> response = upload.post(url) |
|
83327bc715be
make the virtualenv convenience method return more stuff
Jeff Hammel <jhammel@mozilla.com>
parents:
62
diff
changeset
|
53 |
|
83327bc715be
make the virtualenv convenience method return more stuff
Jeff Hammel <jhammel@mozilla.com>
parents:
62
diff
changeset
|
54 Let's see if its in the right place:: |
|
83327bc715be
make the virtualenv convenience method return more stuff
Jeff Hammel <jhammel@mozilla.com>
parents:
62
diff
changeset
|
55 |
|
83327bc715be
make the virtualenv convenience method return more stuff
Jeff Hammel <jhammel@mozilla.com>
parents:
62
diff
changeset
|
56 >>> os.listdir(directory) |
|
83327bc715be
make the virtualenv convenience method return more stuff
Jeff Hammel <jhammel@mozilla.com>
parents:
62
diff
changeset
|
57 ['HelloWorld'] |
|
83327bc715be
make the virtualenv convenience method return more stuff
Jeff Hammel <jhammel@mozilla.com>
parents:
62
diff
changeset
|
58 >>> os.listdir(os.path.join(directory, 'HelloWorld')) |
|
83327bc715be
make the virtualenv convenience method return more stuff
Jeff Hammel <jhammel@mozilla.com>
parents:
62
diff
changeset
|
59 ['HelloWorld-0.0.tar.gz'] |
|
83327bc715be
make the virtualenv convenience method return more stuff
Jeff Hammel <jhammel@mozilla.com>
parents:
62
diff
changeset
|
60 |
|
66
a2ba66be2e31
tests mysteriously fail now
Jeff Hammel <jhammel@mozilla.com>
parents:
65
diff
changeset
|
61 Make a virtualenv to install it in:: |
|
a2ba66be2e31
tests mysteriously fail now
Jeff Hammel <jhammel@mozilla.com>
parents:
65
diff
changeset
|
62 |
|
a2ba66be2e31
tests mysteriously fail now
Jeff Hammel <jhammel@mozilla.com>
parents:
65
diff
changeset
|
63 >>> tmpdir = tempfile.mkdtemp() |
|
a2ba66be2e31
tests mysteriously fail now
Jeff Hammel <jhammel@mozilla.com>
parents:
65
diff
changeset
|
64 >>> venv = create_virtualenv(tmpdir) |
|
68
e62d2fddb275
use the actual paths i mean
Jeff Hammel <jhammel@mozilla.com>
parents:
67
diff
changeset
|
65 >>> code = subprocess.call([venv.python, '-c', 'import helloworld'], stdout=subprocess.PIPE, stderr=subprocess.PIPE) |
|
67
cf03c3f2f98e
this one fails too; something is rotten in the state of virtualenv
Jeff Hammel <jhammel@mozilla.com>
parents:
66
diff
changeset
|
66 >>> code |
|
cf03c3f2f98e
this one fails too; something is rotten in the state of virtualenv
Jeff Hammel <jhammel@mozilla.com>
parents:
66
diff
changeset
|
67 1 |
|
69
10f343c483ee
install and import the thing
Jeff Hammel <jhammel@mozilla.com>
parents:
68
diff
changeset
|
68 |
|
10f343c483ee
install and import the thing
Jeff Hammel <jhammel@mozilla.com>
parents:
68
diff
changeset
|
69 Install the package and make sure you can import it:: |
|
10f343c483ee
install and import the thing
Jeff Hammel <jhammel@mozilla.com>
parents:
68
diff
changeset
|
70 |
|
10f343c483ee
install and import the thing
Jeff Hammel <jhammel@mozilla.com>
parents:
68
diff
changeset
|
71 >>> subprocess.call([venv.easy_install, '-i', index, 'HelloWorld'], stdout=subprocess.PIPE, stderr=subprocess.PIPE) |
|
10f343c483ee
install and import the thing
Jeff Hammel <jhammel@mozilla.com>
parents:
68
diff
changeset
|
72 0 |
|
10f343c483ee
install and import the thing
Jeff Hammel <jhammel@mozilla.com>
parents:
68
diff
changeset
|
73 >>> code = subprocess.call([venv.python, '-c', 'import helloworld']) |
|
10f343c483ee
install and import the thing
Jeff Hammel <jhammel@mozilla.com>
parents:
68
diff
changeset
|
74 >>> code |
|
10f343c483ee
install and import the thing
Jeff Hammel <jhammel@mozilla.com>
parents:
68
diff
changeset
|
75 0 |
|
10f343c483ee
install and import the thing
Jeff Hammel <jhammel@mozilla.com>
parents:
68
diff
changeset
|
76 >>> process = subprocess.Popen([venv.python, '-c', 'import helloworld; print helloworld.hello'], stdout=subprocess.PIPE, stderr=subprocess.PIPE) |
|
10f343c483ee
install and import the thing
Jeff Hammel <jhammel@mozilla.com>
parents:
68
diff
changeset
|
77 >>> stdout, stderr = process.communicate() |
|
10f343c483ee
install and import the thing
Jeff Hammel <jhammel@mozilla.com>
parents:
68
diff
changeset
|
78 >>> stdout |
|
10f343c483ee
install and import the thing
Jeff Hammel <jhammel@mozilla.com>
parents:
68
diff
changeset
|
79 'Hello, world!\n' |
|
10f343c483ee
install and import the thing
Jeff Hammel <jhammel@mozilla.com>
parents:
68
diff
changeset
|
80 >>> process.returncode |
|
10f343c483ee
install and import the thing
Jeff Hammel <jhammel@mozilla.com>
parents:
68
diff
changeset
|
81 0 |
|
66
a2ba66be2e31
tests mysteriously fail now
Jeff Hammel <jhammel@mozilla.com>
parents:
65
diff
changeset
|
82 >>> shutil.rmtree(tmpdir) |
|
a2ba66be2e31
tests mysteriously fail now
Jeff Hammel <jhammel@mozilla.com>
parents:
65
diff
changeset
|
83 |
| 61 | 84 Shut down the server:: |
| 85 | |
| 86 >>> server.stop() |
