--- a/Allura/allura/tests/test_plugin.py
+++ b/Allura/allura/tests/test_plugin.py
@@ -46,10 +46,32 @@
assert_equals(f('A More Than Fifteen Character Name', Mock()),
'amorethanfifteencharactername')
- def test_validate_project_shortname(self):
- f = self.provider.validate_project_shortname
+ def test_valid_project_shortname(self):
+ f = self.provider.valid_project_shortname
p = Mock()
- assert_equals(f('thisislegit', p), None)
- assert_equals(f('this is invalid and too long', p),
+ valid = (True, None)
+ invalid = (False,
'Please use only letters, numbers, and dashes '
'3-15 characters long.')
+ assert_equals(f('thisislegit', p), valid)
+ assert_equals(f('not valid', p), invalid)
+ assert_equals(f('this-is-valid-but-too-long', p), invalid)
+ assert_equals(f('this is invalid and too long', p), invalid)
+
+ def test_allowed_project_shortname(self):
+ allowed = valid = (True, None)
+ invalid = (False, 'invalid')
+ taken = (False, 'This project name is taken.')
+ cases = [
+ (valid, False, allowed),
+ (invalid, False, invalid),
+ (valid, True, taken),
+ ]
+ p = Mock()
+ vps = self.provider.valid_project_shortname = Mock()
+ nt = self.provider._name_taken = Mock()
+ f = self.provider.allowed_project_shortname
+ for vps_v, nt_v, result in cases:
+ vps.return_value = vps_v
+ nt.return_value = nt_v
+ assert_equals(f('project', p), result)