See ChangeLog
Monotone-Parent: f1c001048ccc36181a09a459327f563dbc26e12f Monotone-Revision: aab1e060a1d26a9624f7f84c30d1414ca1969560 Monotone-Author: ludovic@Sophos.ca Monotone-Date: 2010-01-24T20:40:12 Monotone-Branch: ca.inverse.sogomaint-2.0.2
parent
3efde51b62
commit
00e3963a96
|
@ -21,4 +21,4 @@ SOPE/NGCards/samples/CardElement.m
|
||||||
SOPE/NGCards/samples/CardGroup.m
|
SOPE/NGCards/samples/CardGroup.m
|
||||||
SOPE/NGCards/samples/CardVersitRenderer.m
|
SOPE/NGCards/samples/CardVersitRenderer.m
|
||||||
SOPE/NGCards/samples/NGCardsSaxHandler.m
|
SOPE/NGCards/samples/NGCardsSaxHandler.m
|
||||||
Tests/config.py
|
Tests/Integration/config.py
|
||||||
|
|
|
@ -1,3 +1,7 @@
|
||||||
|
2010-01-24 Ludovic Marcotte <lmarcotte@inverse.ca>
|
||||||
|
|
||||||
|
* Reorganized the layout of automated tests.
|
||||||
|
|
||||||
2010-01-22 Francis Lachapelle <flachapelle@inverse.ca>
|
2010-01-22 Francis Lachapelle <flachapelle@inverse.ca>
|
||||||
|
|
||||||
* UI/Contacts/UIxListEditor.m (-references): avoid printing the
|
* UI/Contacts/UIxListEditor.m (-references): avoid printing the
|
||||||
|
|
|
@ -0,0 +1,56 @@
|
||||||
|
setup
|
||||||
|
-----
|
||||||
|
|
||||||
|
(you need "python-simplejson", "python-xml", "python-vobject" and "python-m2crypto"
|
||||||
|
in order to run the scripts on Debian)
|
||||||
|
|
||||||
|
1) copy config.py.in to config.py (make sure to never EVER add it to monotone)
|
||||||
|
2) edit config.py to suit your environment
|
||||||
|
3) run the test scripts
|
||||||
|
|
||||||
|
runnable scripts
|
||||||
|
----------------
|
||||||
|
|
||||||
|
all.py - run all scripts below at once
|
||||||
|
test-webdavsync.py - explicit
|
||||||
|
test-davacl.py - dav acl tests for calendar and addressbook modules
|
||||||
|
|
||||||
|
other scripts
|
||||||
|
-------------
|
||||||
|
|
||||||
|
propfind.py - a sample implementation of a PROPFIND request using webdavlib
|
||||||
|
|
||||||
|
* developers
|
||||||
|
------------
|
||||||
|
|
||||||
|
- Test methods are always prefixed with "test". Sometimes, it's easier to
|
||||||
|
track down a problem by enabling only one test at a time. One possible method
|
||||||
|
is to replace "def test" with "def xtest" and replace it back when the
|
||||||
|
problems are solved.
|
||||||
|
|
||||||
|
- Test failures start with "FAIL:". Those are the ones that indicate possible
|
||||||
|
bugs in the application, if the test is itself known to work.
|
||||||
|
For example like this:
|
||||||
|
|
||||||
|
======================================================================
|
||||||
|
FAIL: 'modify' PUBLIC, 'view all' PRIVATE, 'view d&t' confidential
|
||||||
|
----------------------------------------------------------------------
|
||||||
|
Traceback (most recent call last):
|
||||||
|
File "./davacl.py", line 75, in testModifyPublicViewAllPrivateViewDConfidential
|
||||||
|
self._testRights({ "pu": "m", "pr": "v", "co": "d" })
|
||||||
|
File "./davacl.py", line 119, in _testRights
|
||||||
|
self._testCreate(rights)
|
||||||
|
File "./davacl.py", line 165, in _testCreate
|
||||||
|
exp_code)
|
||||||
|
File "./davacl.py", line 107, in _putEvent
|
||||||
|
% (exp_status, put.response["status"]))
|
||||||
|
AssertionError: event creation/modification: expected status code '403' (received '201')
|
||||||
|
|
||||||
|
- Test errors start with "ERRORS" and most likely indicate a bug in the test
|
||||||
|
code itself.
|
||||||
|
|
||||||
|
- Always set a doc string on the test methods, especially for complex test
|
||||||
|
cases.
|
||||||
|
|
||||||
|
- When writing tests, be aware that contrary to unit tests, functional tests
|
||||||
|
often imply a logical order between the different steps.
|
58
Tests/README
58
Tests/README
|
@ -1,56 +1,8 @@
|
||||||
setup
|
This directory holds automated tests for SOGo.
|
||||||
-----
|
|
||||||
|
|
||||||
(you need "python-simplejson", "python-xml", "python-vobject" and "python-m2crypto"
|
We currrently have:
|
||||||
in order to run the scripts on Debian)
|
|
||||||
|
|
||||||
1) copy config.py.in to config.py (make sure to never EVER add it to monotone)
|
- Intregation holds all interated tests that are used to
|
||||||
2) edit config.py to suit your environment
|
validate overall DAV functionality right now
|
||||||
3) run the test scripts
|
|
||||||
|
|
||||||
runnable scripts
|
- Unit holds all unit tests
|
||||||
----------------
|
|
||||||
|
|
||||||
all.py - run all scripts below at once
|
|
||||||
test-webdavsync.py - explicit
|
|
||||||
test-davacl.py - dav acl tests for calendar and addressbook modules
|
|
||||||
|
|
||||||
other scripts
|
|
||||||
-------------
|
|
||||||
|
|
||||||
propfind.py - a sample implementation of a PROPFIND request using webdavlib
|
|
||||||
|
|
||||||
* developers
|
|
||||||
------------
|
|
||||||
|
|
||||||
- Test methods are always prefixed with "test". Sometimes, it's easier to
|
|
||||||
track down a problem by enabling only one test at a time. One possible method
|
|
||||||
is to replace "def test" with "def xtest" and replace it back when the
|
|
||||||
problems are solved.
|
|
||||||
|
|
||||||
- Test failures start with "FAIL:". Those are the ones that indicate possible
|
|
||||||
bugs in the application, if the test is itself known to work.
|
|
||||||
For example like this:
|
|
||||||
|
|
||||||
======================================================================
|
|
||||||
FAIL: 'modify' PUBLIC, 'view all' PRIVATE, 'view d&t' confidential
|
|
||||||
----------------------------------------------------------------------
|
|
||||||
Traceback (most recent call last):
|
|
||||||
File "./davacl.py", line 75, in testModifyPublicViewAllPrivateViewDConfidential
|
|
||||||
self._testRights({ "pu": "m", "pr": "v", "co": "d" })
|
|
||||||
File "./davacl.py", line 119, in _testRights
|
|
||||||
self._testCreate(rights)
|
|
||||||
File "./davacl.py", line 165, in _testCreate
|
|
||||||
exp_code)
|
|
||||||
File "./davacl.py", line 107, in _putEvent
|
|
||||||
% (exp_status, put.response["status"]))
|
|
||||||
AssertionError: event creation/modification: expected status code '403' (received '201')
|
|
||||||
|
|
||||||
- Test errors start with "ERRORS" and most likely indicate a bug in the test
|
|
||||||
code itself.
|
|
||||||
|
|
||||||
- Always set a doc string on the test methods, especially for complex test
|
|
||||||
cases.
|
|
||||||
|
|
||||||
- When writing tests, be aware that contrary to unit tests, functional tests
|
|
||||||
often imply a logical order between the different steps.
|
|
||||||
|
|
Loading…
Reference in New Issue