UbuntuGrok
2579
Comment:
|
3158
|
Deletions are marked like this. | Additions are marked like this. |
Line 23: | Line 23: |
* src/viejo/tests -> Directory to store our unit doctests | * src/viejo/tests -> Directory to store our unit doctests (Doctests are usually written in [[http://docutils.sourceforge.net/docs/user/rst/quickref.html|reStructuredText]]) |
Line 28: | Line 28: |
For every change we do to the application we always have to run {{{Viejo/bin/test}}} to check we don't break anything. We could access bin/test from anywhere in our path. For example, if we're inside our project's ftests directory we could call ../../../bin/test and will run all our unit and functional tests. If we only want to run a kind of tests we could call it like this: | For every change we do to the application we always have to run {{{Viejo/bin/test}}} to check we don't break anything. We could access bin/test from anywhere in our path. For example, if we're inside our project's ftests directory we could call ../../../bin/test and it will run all our unit and functional tests. If we only want to run a kind of tests we could call it like this: |
Line 34: | Line 34: |
* bzr status -> it will tell us which files have been changed, deleted or are about to be added to our branch. Always use {{{bzr status}}} before doing a check in. Maybe our local setup works, and we have to make sure launchpad get all the files we want * bzr add <filename> -> Makes bzr knows about our new file |
* bzr co lp:~viejo-team/viejo-code/yagni . -> It will check out our yagni branch inside the current directory. Why are we not using branches? Well, check out the '''When would I want a checkout?''' section of [[http://bazaar-vcs.org/CheckoutTutorial]]. Right now, I think it's OK working like this. Remember the name of our branch? ;) * bzr status -> It will tell us which files have been changed or deleted, which ones are about to be added to our branch and which ones are still unknown to bzr. '''Always''' use {{{bzr status}}} before doing a check in. Maybe our local setup works, but we have to make sure launchpad get all the files we want * bzr add <filename> -> Makes bzr to know about our new file * bzr remove <filename> -> Deletes a file from our project |
This documents the procedure I used to setup a Grok virtual environment for working on the Viejo content management system. Note that as of September 29th, grokproject 0.9 and grok 0.14 work on python2.5. So the easy_install-2.4 can be omitted.
sudo apt-get install build-essential python-dev python-setuptools subversion bzr
sudo easy_install virtualenv
mkdir viejo_virtualenv
cd viejo_virtualenv
virtualenv --no-site-packages virtualgrok
source virtualgrok/bin/activate
easy_install grokproject
grokproject Viejo
cd Viejo
rm -rf setup.py buildout.cfg src
bzr checkout lp:~viejo-team/viejo-code/yagni .
./bin/buildout
./bin/test
Now, we're good to go TDD. The main files and directories of our project are:
setup.py -> Mostly to include packages required for our project to work
buildout.cfg -> Configuration for our instance
src/viejo/models.py -> Stores the models of our application. See the Model-view-controller for more
src/viejo/tests -> Directory to store our unit doctests (Doctests are usually written in reStructuredText)
src/viejo/tests/models.txt -> Unit doctests for our models.py module
src/viejo/ftests -> Directory to store our functional doctests
src/viejo/ftests/viejo.txt -> Functional doctests for our application
For every change we do to the application we always have to run Viejo/bin/test to check we don't break anything. We could access bin/test from anywhere in our path. For example, if we're inside our project's ftests directory we could call ../../../bin/test and it will run all our unit and functional tests. If we only want to run a kind of tests we could call it like this:
bin/test -u -> It will run only unit doctests inside the src/viejo/tests directory
bin/test -f -> It will run only functional doctests inside the src/viejo/ftests directory
Some useful bzr commands we will need:
bzr co lp:~viejo-team/viejo-code/yagni . -> It will check out our yagni branch inside the current directory. Why are we not using branches? Well, check out the When would I want a checkout? section of http://bazaar-vcs.org/CheckoutTutorial. Right now, I think it's OK working like this. Remember the name of our branch?
bzr status -> It will tell us which files have been changed or deleted, which ones are about to be added to our branch and which ones are still unknown to bzr. Always use bzr status before doing a check in. Maybe our local setup works, but we have to make sure launchpad get all the files we want
bzr add <filename> -> Makes bzr to know about our new file
bzr remove <filename> -> Deletes a file from our project
bzr revert <filename> -> Restore <filename> to be the one we checked out
bzr ci -m "Some descriptive message" -> Checks changes back into launchpad
UbuntuGrok (last edited 2009-02-05 15:36:28 by 158)