1113
1114
self.assertFalse(os.path.lexists(unity_path))
1114
1115
self.assertFalse(os.path.lexists(yelp_docs_path))
1115
1116
self.assertFalse(os.path.lexists(yelp_other_path))
1119
class TestPackageHooksValidateFramework(TestClickHookBase):
1121
def _make_hook_file(self, hookname="test"):
1122
hook_file = os.path.join(self.hooks_dir, "%s.hook" % hookname)
1123
with mkfile(hook_file) as f:
1124
print("User-Level: yes", file=f)
1125
print("Pattern: %s/${id}.test" % self.temp_dir, file=f)
1127
def _make_manifest(self, package="test-1",version="1.0",
1128
framework="ubuntu-sdk-13.10",
1131
hooks = {"test1-app": {"test": "target-1"}}
1132
with mkfile_utf8(os.path.join(
1133
self.temp_dir, package, version, ".click", "info",
1134
"%s.manifest" % package)) as f:
1136
"framework": framework,
1139
os.symlink("1.0", os.path.join(self.temp_dir, package, "current"))
1140
user_db = Click.User.for_user(self.db, "test-user")
1141
user_db.set_version(package, version)
1143
def _setup_test_env(self, preloads):
1144
preloads["click_get_user_home"].return_value = "/home/test-user"
1145
self._setup_hooks_dir(
1146
preloads, os.path.join(self.temp_dir, "hooks"))
1147
self._make_hook_file()
1148
self.hook_symlink_path = os.path.join(
1149
self.temp_dir, "test-1_test1-app_1.0.test")
1151
def test_links_are_kept_on_validate_framework(self):
1152
with self.run_in_subprocess(
1153
"click_get_hooks_dir", "click_get_user_home",
1154
"click_get_frameworks_dir",
1155
) as (enter, preloads):
1157
self._setup_frameworks(
1158
preloads, frameworks=["ubuntu-sdk-13.10"])
1159
self._setup_test_env(preloads)
1160
self._make_manifest(framework="ubuntu-sdk-13.10")
1161
self.assertTrue(os.path.lexists(self.hook_symlink_path))
1163
Click.run_user_hooks(self.db, user_name="test-user")
1164
self.assertTrue(os.path.lexists(self.hook_symlink_path))
1166
def test_links_are_kept_multiple_frameworks(self):
1167
with self.run_in_subprocess(
1168
"click_get_hooks_dir", "click_get_user_home",
1169
"click_get_frameworks_dir",
1170
) as (enter, preloads):
1172
self._setup_frameworks(
1173
preloads, frameworks=["ubuntu-sdk-14.04", "ubuntu-sdk-13.10"])
1174
self._setup_test_env(preloads)
1175
self._make_manifest(framework="ubuntu-sdk-13.10")
1176
self.assertTrue(os.path.lexists(self.hook_symlink_path))
1178
Click.run_user_hooks(self.db, user_name="test-user")
1179
self.assertTrue(os.path.lexists(self.hook_symlink_path))
1181
def test_links_are_removed_on_missng_framework(self):
1182
with self.run_in_subprocess(
1183
"click_get_hooks_dir", "click_get_user_home",
1184
"click_get_frameworks_dir",
1185
) as (enter, preloads):
1187
self._setup_frameworks(preloads, frameworks=["missing"])
1188
self._setup_test_env(preloads)
1189
self._make_manifest(framework="ubuntu-sdk-13.10")
1190
self.assertTrue(os.path.lexists(self.hook_symlink_path))
1192
Click.run_user_hooks(self.db, user_name="test-user")
1193
self.assertFalse(os.path.lexists(self.hook_symlink_path))
1195
def test_links_are_removed_on_missng_multiple_framework(self):
1196
with self.run_in_subprocess(
1197
"click_get_hooks_dir", "click_get_user_home",
1198
"click_get_frameworks_dir",
1199
) as (enter, preloads):
1201
self._setup_frameworks(preloads, frameworks=["ubuntu-sdk-13.10"])
1202
self._setup_test_env(preloads)
1203
self._make_manifest(
1204
framework="ubuntu-sdk-13.10,ubuntu-sdk-13.10-html")
1205
self.assertTrue(os.path.lexists(self.hook_symlink_path))
1207
Click.run_user_hooks(self.db, user_name="test-user")
1208
self.assertFalse(os.path.lexists(self.hook_symlink_path))