47
47
del_user(cls.USER_1)
48
48
del_user(cls.USER_2)
50
def click_unregister(self, username, click_name):
51
if username == "@all":
54
user = "--user=%s" % username
55
subprocess.check_call(
56
[self.click_binary, "unregister", user, click_name])
58
50
def test_install_for_single_user(self):
59
click_pkg = self._make_click(name="foo-1", framework="")
52
click_pkg = self._make_click(name=name, framework="")
61
subprocess.check_call([
62
self.click_binary, "install", "--user=%s" % self.USER_1,
63
"--allow-unauthenticated",
64
click_pkg], universal_newlines=True)
65
self.addCleanup(self.click_unregister, self.USER_1, "foo-1")
54
self.click_install(click_pkg, name, self.USER_1)
66
55
# ensure that user-1 has it
67
56
output = subprocess.check_output([
68
57
"sudo", "-u", self.USER_1,
69
58
self.click_binary, "list"], universal_newlines=True)
70
self.assertEqual(output, "foo-1\t1.0\n")
59
self.assertEqual(output, "%s\t1.0\n" % name)
72
61
output = subprocess.check_output([
73
62
"sudo", "-u", self.USER_2,
77
66
output = subprocess.check_output(
78
67
[self.click_binary, "list", "--user=%s" % self.USER_1],
79
68
universal_newlines=True)
80
self.assertEqual(output, "foo-1\t1.0\n")
69
self.assertEqual(output, "%s\t1.0\n" % name)
71
def test_install_for_single_user_and_register(self):
73
click_pkg = self._make_click(name=name, framework="")
74
self.click_install(click_pkg, name, self.USER_1)
75
# not available for user2
76
output = subprocess.check_output([
77
"sudo", "-u", self.USER_2,
78
self.click_binary, "list"], universal_newlines=True)
79
self.assertEqual(output, "")
81
subprocess.check_call(
82
[self.click_binary, "register", "--user=%s" % self.USER_2,
84
self.addCleanup(self.click_unregister, name, self.USER_2)
85
# and ensure its available for user2
86
output = subprocess.check_output([
87
"sudo", "-u", self.USER_2,
88
self.click_binary, "list"], universal_newlines=True)
89
self.assertEqual(output, "%s\t1.0\n" % name)
82
91
def test_install_for_all_users(self):
83
click_pkg = self._make_click(name="foo-2", framework="")
85
subprocess.check_call(
86
[self.click_binary, "install", "--all-users",
87
"--allow-unauthenticated", click_pkg],
88
universal_newlines=True)
89
self.addCleanup(self.click_unregister, "@all", "foo-2")
93
click_pkg = self._make_click(name=name, framework="")
94
self.click_install(click_pkg, name, "@all")
90
95
# ensure all users see it
91
96
for user in (self.USER_1, self.USER_2):
92
97
output = subprocess.check_output(
93
98
["sudo", "-u", user, self.click_binary, "list"],
94
99
universal_newlines=True)
95
self.assertEqual(output, "foo-2\t1.0\n")
100
self.assertEqual(output, "%s\t1.0\n" % name)
97
102
def test_pkgdir_after_install(self):
98
click_pkg = self._make_click(name="foo-2", version="1.2", framework="")
99
subprocess.check_call(
100
[self.click_binary, "install", "--all-users",
101
"--allow-unauthenticated", click_pkg],
102
universal_newlines=True)
103
self.addCleanup(self.click_unregister, "@all", "foo-2")
104
click_pkg = self._make_click(name=name, version="1.2", framework="")
105
self.click_install(click_pkg, name, "@all")
105
107
output = subprocess.check_output(
106
108
[self.click_binary, "pkgdir",
107
"/opt/click.ubuntu.com/foo-2/1.2/README"],
109
"/opt/click.ubuntu.com/%s/1.2/README" % name],
108
110
universal_newlines=True).strip()
109
self.assertEqual(output, "/opt/click.ubuntu.com/foo-2/1.2")
111
self.assertEqual(output, "/opt/click.ubuntu.com/%s/1.2" % name)
110
112
# now test from the click package name
111
113
output = subprocess.check_output(
112
[self.click_binary, "pkgdir", "foo-2"],
114
[self.click_binary, "pkgdir", name],
113
115
universal_newlines=True).strip()
114
116
# note that this is different from above
115
117
self.assertEqual(
116
output, "/opt/click.ubuntu.com/.click/users/@all/foo-2")
118
output, "/opt/click.ubuntu.com/.click/users/@all/%s" % name)