-
Notifications
You must be signed in to change notification settings - Fork 1
Automated Unit Testing
Fraser Harris edited this page Oct 5, 2015
·
10 revisions
We use nose to run our tests.
We use mock to create fake objects that can be consumed by objects / methods we are actually testing.
coverage run --source=. manage.py test -v 2 --settings=secondfunnel.settings.nosetests_runner
(venv)vagrant@vagrant-ubuntu-trusty-64:/opt/secondfunnel/app$ python manage.py test apps/assets
nosetests apps/assets --verbosity=1
Creating test database for alias 'default'...
Got an error creating the test database: permission denied to create database
Type 'yes' if you would like to try deleting the test database 'test_sfdb', or 'no' to cancel: yes
Destroying old test database 'default'...
Got an error recreating the test database: database "test_sfdb" does not exist
Give the vagrant database user the CREATEDB permission.
postgres@vagrant-ubuntu-trusty-64:/opt/secondfunnel/app$ psql -h localhost
postgres=# ALTER USER sf CREATEDB;
ALTER ROLE
postgres=# \q
Note: if you get a Password: prompt, [[see this about setting a password for postgres user|Database:-Postgres#3-setting-a-postgres-user-password]].
(venv)vagrant@vagrant-ubuntu-trusty-64:/opt/secondfunnel/app$ python manage.py test apps/assets
nosetests apps/assets --verbosity=1
Creating test database for alias 'default'...
Got an error creating the test database: database "test_sfdb" already exists
Type 'yes' if you would like to try deleting the test database 'test_sfdb', or 'no' to cancel: yes
Destroying old test database 'default'...
Got an error recreating the test database: database "test_sfdb" is being accessed by other users
DETAIL: There is 1 other session using the database.
You will need to manually drop the test_sfdb database. This involves a) connecting to another database (sfdb), terminating any remaining sessions to test_sfdb. Then dropping test_sfdb.
postgres@vagrant-ubuntu-trusty-64:/opt/secondfunnel/app$ psql sfdb
sfdb=# SELECT * FROM pg_stat_activity;
datid | datname | pid | usesysid | usename | application_name | ...
-------+-----------+-------+----------+----------+------------------+----
16385 | test_sfdb | 11778 | 10 | postgres | psql | ...
16385 | sfdb | 11994 | 10 | postgres | psql | ...
16385 | sfdb | 11691 | 16384 | sf | | ...
(3 rows)
sfdb=# SELECT pg_terminate_backend(11778); -- pid from last command
pg_terminate_backend
----------------------
t
(1 row)
sfdb=# DROP DATABASE test_sfdb;
DROP DATABASE
sfdb=# \q