Merge remote-tracking branch 'origin/bug_785_fix_rtl_group_epg'
[enigma2.git] / tests / README
1 enigma2 test environment
2
3
4 The goal is to test as much components of enigma2 with as less dependencies
5 as possible. So we create an environment which emulates "all" runtime
6 dependencies with fixed value. 
7
8 Only python is tested, all c++ stuff is re-implemented in python (usually as
9 dummy functions).
10
11 When testing components, they should be kept seperated. If this is not
12 possible, you can try overriding imports, for example you can replace
13 Notification support with dummy notifications to prevent the whole GUI from
14 loading...
15
16 If even that doesn't help, the component is bad, and should be fixed. Please
17 try to seperate changes to the test system from changes from components.
18 Please don't add specific test functionality into the components. If they
19 are not remote controllable, the component is badly writen anyway.
20
21 Usually, all dummy functions are implemented to not fail. They emit special
22 events to signal what has been done. These results will be compared to the
23 expected test results, so they should be consistent with each run. If you
24 want to test failures, you need to install "fault hooks", where you can
25 inject faults.
26
27 For example:
28
29 The timer test initializes
30  - the "real" navigation stuff,
31  - the real record config,
32  - the real parental control,
33  - inserts a fake null-notification handler,
34
35 then it installs a timer, and runs the enigma mainloop (enigma.run()).
36 Core events happening during the duration of the test (like "record prepare,
37 record start, record stop") will be recorded, and compared after the test.
38
39 (compare is not yet implemented)
40
41 Starting these tests must currently done with
42 PYTHONPATH=.:..:../lib/python/ python test_timer.py