mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-03-25 16:12:44 +00:00
Replace the tearDown code by something a bit more elegant:
each test now adds its ics to the ics_list.
tearDown loops over the list instead of listing each ics.
2 new utility functions: _getAllEvents and _deleteAllEvent
Those should probably be named _getCollectionContent and
_deleteCollectionContent...
For tests related to resources, make sure their calendar is empty
before running them.
This ensures we won't get conflicts with existing events...
Various reindent
New test for bug #1837. Fails on <=1.3.16
Monotone-Parent: 4b891748ee7ea0c409554e75a90fb995173562a2
Monotone-Revision: 802a8f25aa0ed67386953826b82939c3ab98bba2
Monotone-Author: jraby@inverse.ca
Monotone-Date: 2012-06-22T19:06:17
setup
-----
(you need "python-simplejson", "python-xml", "python-vobject", "python-dateutil" 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) make sure that you use a fresh database, with no prior information in it
4) make sure that SOGoCalendarDefaultRoles and SOGoContactsDefaultRoles are empty or undefined
5) 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 contrarily to unit tests, functional tests
often imply a logical order between the different steps.