blob: 7c48874b7c9a0142269629b22a4cb4cd818ba745 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
Starting a ``repoze.bfg`` Project
=================================
To start a ``repoze.bfg`` project, use the ``paster create``
facility::
$ paster create -t bfg
Selected and implied templates:
repoze.bfg#bfg repoze.bfg starter project
Enter project name: myproject
Variables:
egg: myproject
package: myproject
project: myproject
Creating template bfg
Creating directory ./myproject
Recursing into +package+
Creating ./myproject/myproject/
Copying __init__.py to ./myproject/myproject/__init__.py
Copying configure.zcml to ./myproject/myproject/configure.zcml
Copying models.py to ./myproject/myproject/models.py
Copying run.py_tmpl to ./myproject/myproject/run.py
Recursing into templates
Creating ./myproject/myproject/templates/
Copying mytemplate.pt to ./myproject/myproject/templates/mytemplate.pt
Copying views.py_tmpl to ./myproject/myproject/views.py
Copying +package+.ini_tmpl to ./myproject/myproject.ini
Copying CHANGES.txt_tmpl to ./myproject/CHANGES.txt
Copying README.txt_tmpl to ./myproject/README.txt
Copying ez_setup.py to ./myproject/ez_setup.py
Copying setup.py_tmpl to ./myproject/setup.py
Running /Users/chrism/projects/repoze-devel/bfg/bin/python setup.py egg_info
The project will be created in a directory named ``myproject``. That
directory is a directory from which a Python setuptools *distribution*
can be created. THe ``setup.py`` file in that directory can be used
to distribute your application, or install your application for
deployment or development. A sample PasteDeploy ``.ini`` file named
``myproject.ini`` will also be created in the project directory. You
can use this to run your application.
The main ``myproject`` contains an additional subdirectory (also named
``myproject``) representing a Python pakckage which holds very simple
bfg sample code. This is where you'll edit your application's Python
code and templates.
Installing your Newly Created Project for Development
-----------------------------------------------------
Using your favorite Python interpreter (using a virtualenv suggested
in order to get isolation), invoke the following command when inside
the project directory against the generated ``setup.py``::
$ python setup.py develop
...
Finished processing dependencies for myproject==0.1
This will install your application 's package into the interpreter so
it can be found and run under a webserver.
Runnning The Project Application
--------------------------------
Once the project is installed for development, you can run it using
the ``paster serve`` command against the generated ``myproject.ini``
configuration file::
$ paster serve myproject/myproject.ini
Starting server in PID 16601.
serving on 0.0.0.0:5432 view at http://127.0.0.1:5432
It will listen on port 5432. If you visit the unchanged sample
application using a browser (e.g. http://localhost:5432/), you will
see the following::
Welcome to myproject
.. note:: During development, it's often useful to run ``paster serve``
using its ``--reload`` option. When any Python module your project
uses, changes, it will restart the server, which makes development
easier, as changes to Python code under ``repoze.bfg`` is not put
into effect until the server restarts.
Running The Tests For Your Application
--------------------------------------
To run unit tests for your application, you should invoke them like so::
$ python setup.py test -q
running test
running egg_info
writing requirements to myproject.egg-info/requires.txt
writing myproject.egg-info/PKG-INFO
writing top-level names to myproject.egg-info/top_level.txt
writing dependency_links to myproject.egg-info/dependency_links.txt
writing entry points to myproject.egg-info/entry_points.txt
reading manifest file 'myproject.egg-info/SOURCES.txt'
writing manifest file 'myproject.egg-info/SOURCES.txt'
running build_ext
.
----------------------------------------------------------------------
Ran 1 test in 0.566s
OK
The tests are found in the ``tests.py`` module in your generated
project. One sample test exists.
|