File: multiple3.py

package info (click to toggle)
gamin 0.1.10-6
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye
  • size: 3,784 kB
  • sloc: ansic: 10,675; sh: 8,915; python: 3,706; xml: 1,303; makefile: 318; awk: 48
file content (84 lines) | stat: -rwxr-xr-x 2,132 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#!/usr/bin/env python

import gamin
import time
import os
import sys
import shutil

ok = 1
expect0 = [gamin.GAMExists, gamin.GAMEndExist, gamin.GAMCreated]
nb0 = 0
expect1 = [gamin.GAMExists, gamin.GAMEndExist, gamin.GAMCreated,
           gamin.GAMCreated]
nb1 = 0
expect2 = [gamin.GAMExists, gamin.GAMEndExist, gamin.GAMCreated,
           gamin.GAMCreated, gamin.GAMDeleted]
nb2 = 0
def callback(path, event, which):
    global ok
    global expect0, nb0
    global expect1, nb1
    global expect2, nb2

#    print "Got callback on %d: %s, %s" % (which, path, event)
    if event == gamin.GAMAcknowledge:
        return
    if which == 0:
        if event != expect0[nb0]:
	    print "Error: monitor %d got event %d expected %d" % (which, event,
	          expect0[nb0])
            ok = 0
        nb0 = nb0 + 1
    elif which == 1:
        if event != expect1[nb1]:
	    print "Error: monitor %d got event %d expected %d" % (which, event,
	          expect1[nb1])
            ok = 0
        nb1 = nb1 + 1
    elif which == 2:
        if event != expect2[nb2]:
	    print "Error: monitor %d got event %d expected %d" % (which, event,
	          expect2[nb2])
            ok = 0
        nb2 = nb2 + 1

shutil.rmtree ("temp_dir", True)
os.mkdir ("temp_dir")

mon = gamin.WatchMonitor()
watch0 = mon.watch_directory("temp_dir", callback, 0)
watch1 = mon.watch_directory("temp_dir", callback, 1)
watch2 = mon.watch_directory("temp_dir", callback, 2)
time.sleep(1)
mon.handle_events()

open("temp_dir/a", "w").close()
time.sleep(1)
mon.handle_events()
watch0.cancel()

open("temp_dir/b", "w").close()
time.sleep(1)
mon.handle_events()
watch1.cancel()

os.unlink("temp_dir/a")
time.sleep(1)
mon.handle_events()

mon.disconnect()
del mon
shutil.rmtree ("temp_dir", True)

if nb0 != len(expect0):
    print "Error: monitor 0 got %d events, expecting %d" % (nb0, len(expect0))
    ok = 0
if nb1 != len(expect1):
    print "Error: monitor 1 got %d events, expecting %d" % (nb1, len(expect1))
    ok = 0
if nb2 != len(expect2):
    print "Error: monitor 2 got %d events, expecting %d" % (nb2, len(expect2))
    ok = 0
if ok:
    print "OK"