tests/fixes for assert_allowed
This commit is contained in:
parent
dd87bd39e3
commit
04b42c8320
2 changed files with 95 additions and 11 deletions
|
|
@ -33,22 +33,19 @@ class TestSCM(unittest.TestCase):
|
|||
bad = [
|
||||
"git://user@@server/foo.git#bab0c73900241ef5c465d7e873e9d8b34c948e67",
|
||||
"git://user:pass@server/foo.git#bab0c73900241ef5c465d7e873e9d8b34c948e67",
|
||||
"git://server/foo.git?params=not_allowed",
|
||||
"git://server/foo.git;params=not_allowed",
|
||||
"git://server#asdasd", # no path
|
||||
"git://server/foo.git", # no fragment
|
||||
"http://localhost/foo.html",
|
||||
"git://@localhost/foo/?a=bar/",
|
||||
"http://localhost/foo.html?a=foo/",
|
||||
"foo-1.1-1.src.rpm",
|
||||
"git://",
|
||||
"https://server/foo-1.1-1.src.rpm",
|
||||
]
|
||||
for url in bad:
|
||||
print url
|
||||
try:
|
||||
#with self.assertRaises(koji.GenericError):
|
||||
with self.assertRaises(koji.GenericError):
|
||||
scm = SCM(url)
|
||||
except koji.GenericError, e:
|
||||
print e
|
||||
else:
|
||||
raise Exception("fucked")
|
||||
|
||||
url = "git://user@server/foo.git#bab0c73900241ef5c465d7e873e9d8b34c948e67"
|
||||
scm = SCM(url)
|
||||
|
|
@ -63,4 +60,90 @@ class TestSCM(unittest.TestCase):
|
|||
self.assertEqual(scm.scmtype, 'GIT')
|
||||
|
||||
|
||||
@mock.patch('logging.getLogger')
|
||||
def test_allowed(self, getLogger):
|
||||
allowed = '''
|
||||
goodserver:*:no
|
||||
!badserver:*
|
||||
!maybeserver:/badpath/*
|
||||
maybeserver:*:no
|
||||
'''
|
||||
good = [
|
||||
"git://goodserver/path1#1234",
|
||||
"git+ssh://maybeserver/path1#1234",
|
||||
]
|
||||
bad = [
|
||||
"cvs://badserver/projects/42#ref",
|
||||
"svn://badserver/projects/42#ref",
|
||||
]
|
||||
for url in good:
|
||||
scm = SCM(url)
|
||||
scm.assert_allowed(allowed)
|
||||
for url in bad:
|
||||
scm = SCM(url)
|
||||
with self.assertRaises(koji.BuildError):
|
||||
scm.assert_allowed(allowed)
|
||||
|
||||
@mock.patch('logging.getLogger')
|
||||
def test_badrule(self, getLogger):
|
||||
allowed = '''
|
||||
bogus-entry-should-be-ignored
|
||||
goodserver:*:no
|
||||
!badserver:*
|
||||
'''
|
||||
url = "git://goodserver/path1#1234"
|
||||
scm = SCM(url)
|
||||
scm.assert_allowed(allowed)
|
||||
|
||||
@mock.patch('logging.getLogger')
|
||||
def test_opts(self, getLogger):
|
||||
allowed = '''
|
||||
default:*
|
||||
nocommon:*:no
|
||||
srccmd:*:no:fedpkg,sources
|
||||
mixed:/foo/*:no
|
||||
mixed:/bar/*:yes
|
||||
mixed:/baz/*:no:fedpkg,sources
|
||||
'''
|
||||
|
||||
url = "git://default/koji.git#1234"
|
||||
scm = SCM(url)
|
||||
scm.assert_allowed(allowed)
|
||||
self.assertEqual(scm.use_common, True)
|
||||
self.assertEqual(scm.source_cmd, ['make', 'sources'])
|
||||
|
||||
url = "git://nocommon/koji.git#1234"
|
||||
scm = SCM(url)
|
||||
scm.assert_allowed(allowed)
|
||||
self.assertEqual(scm.use_common, False)
|
||||
self.assertEqual(scm.source_cmd, ['make', 'sources'])
|
||||
|
||||
url = "git://srccmd/koji.git#1234"
|
||||
scm = SCM(url)
|
||||
scm.assert_allowed(allowed)
|
||||
self.assertEqual(scm.use_common, False)
|
||||
self.assertEqual(scm.source_cmd, ['fedpkg', 'sources'])
|
||||
|
||||
url = "git://mixed/foo/koji.git#1234"
|
||||
scm = SCM(url)
|
||||
scm.assert_allowed(allowed)
|
||||
self.assertEqual(scm.use_common, False)
|
||||
self.assertEqual(scm.source_cmd, ['make', 'sources'])
|
||||
|
||||
url = "git://mixed/bar/koji.git#1234"
|
||||
scm = SCM(url)
|
||||
scm.assert_allowed(allowed)
|
||||
self.assertEqual(scm.use_common, True)
|
||||
self.assertEqual(scm.source_cmd, ['make', 'sources'])
|
||||
|
||||
url = "git://mixed/baz/koji.git#1234"
|
||||
scm = SCM(url)
|
||||
scm.assert_allowed(allowed)
|
||||
self.assertEqual(scm.use_common, False)
|
||||
self.assertEqual(scm.source_cmd, ['fedpkg', 'sources'])
|
||||
|
||||
url = "git://mixed/koji.git#1234"
|
||||
scm = SCM(url)
|
||||
with self.assertRaises(koji.BuildError):
|
||||
scm.assert_allowed(allowed)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue