summaryrefslogtreecommitdiffstats
path: root/tests/regress/issue51.py
blob: 75803edfc13a68722eb5c1097b4e5ac95fb85d52 (plain)
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
#!/usr/bin/python3

import os
import opk, cfg, opkgcl

opk.regress_init()

open("foo", "w").close()
a1 = opk.Opk(Package="a", Version="1.0", Architecture="all")
a1.write(data_files=["foo"])
os.rename("a_1.0_all.opk", "a_with_foo.opk")

opkgcl.install("a_with_foo.opk")

# ----
opkgcl.install("a_with_foo.opk")

open("bar", "w").close()
o = opk.OpkGroup()
a2 = opk.Opk(Package="a", Version="1.0", Architecture="all")
a2.write(data_files=["foo", "bar"])
o.opk_list.append(a2)
o.write_list()

os.unlink("foo")
os.unlink("bar")

opkgcl.update()
opkgcl.install("a", "--force-reinstall")

foo_fullpath = "{}/foo".format(cfg.offline_root)
bar_fullpath = "{}/bar".format(cfg.offline_root)

if not os.path.exists(foo_fullpath) or not os.path.exists(bar_fullpath):
	print(__file__, ": Files foo and/or bar are missing.")
	exit(False)

a_files = opkgcl.files("a")
if not foo_fullpath in a_files or not bar_fullpath in a_files:
	print(__file__, ": Package 'a' does not own foo and/or bar.")
	exit(False)

opkgcl.remove("a")

if os.path.exists(foo_fullpath) or os.path.exists(bar_fullpath):
	print(__file__, ": Files foo and/or bar still exist "
				"after removal of package 'a'.")
	exit(False)

# ----
o = opk.OpkGroup()
a2 = opk.Opk(Package="a", Version="1.0", Architecture="all")
a2.write()
o.opk_list.append(a2)
o.write_list()


opkgcl.update()

opkgcl.install("a", "--force-reinstall")

if os.path.exists(foo_fullpath):
	print(__file__, ": File 'foo' not orphaned as it should be.")
	exit(False)

if foo_fullpath in opkgcl.files("a"):
	print(__file__, ": Package 'a' incorrectly owns file 'foo'.")
	exit(False)

opkgcl.remove("a")