Mercurial > hg > simpypi
annotate tests/test_ttw.txt @ 78:d5c3fdceb718
flush out tests section
author | Jeff Hammel <jhammel@mozilla.com> |
---|---|
date | Fri, 02 Mar 2012 16:23:36 -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() |