| |
@@ -117,7 +117,7 @@
|
| |
self.dga = None
|
| |
super(DistGitAuthTests, self).tearDown()
|
| |
|
| |
- def create_namespaced_project(self, namespace, name, is_fork=False):
|
| |
+ def create_namespaced_project(self, namespace, name, is_fork=False, settings={}):
|
| |
item = pagure.lib.model.Project(
|
| |
user_id=1, # pingou
|
| |
name=name,
|
| |
@@ -126,6 +126,7 @@
|
| |
description='namespaced test project',
|
| |
hook_token='aaabbbeee',
|
| |
namespace=namespace,
|
| |
+ settings=settings
|
| |
)
|
| |
item.close_status = [
|
| |
'Invalid', 'Insufficient data', 'Fixed', 'Duplicate']
|
| |
@@ -371,7 +372,51 @@
|
| |
)
|
| |
|
| |
self.expect_info_msg("Committer push to unprotected")
|
| |
+
|
| |
+ def test_unprotected_pr_required_repo_pr_only_no_pr(self):
|
| |
+ settings = {"pull_request_access_only": True}
|
| |
+ project = self.create_namespaced_project('unprotected', 'test', settings=settings)
|
| |
|
| |
+ self.assertFalse(
|
| |
+ self.dga.check_acl(
|
| |
+ self.session,
|
| |
+ project=project,
|
| |
+ username="pingou",
|
| |
+ refname="refs/heads/mywip",
|
| |
+ pull_request=None,
|
| |
+ repodir=None,
|
| |
+ repotype='main',
|
| |
+ revfrom=None,
|
| |
+ revto=None,
|
| |
+ is_internal=False,
|
| |
+ )
|
| |
+ )
|
| |
+
|
| |
+ self.expect_info_msg("A pull request is required for this branch")
|
| |
+
|
| |
+ def test_unprotected_pr_required_repo_pr_only(self):
|
| |
+ settings = {"pull_request_access_only": True}
|
| |
+ project = self.create_namespaced_project(
|
| |
+ 'unprotected',
|
| |
+ 'test',
|
| |
+ settings=settings
|
| |
+ )
|
| |
+ self.assertTrue(
|
| |
+ self.dga.check_acl(
|
| |
+ self.session,
|
| |
+ project=project,
|
| |
+ username="pingou",
|
| |
+ refname="refs/heads/mywip",
|
| |
+ pull_request="pull_request",
|
| |
+ repodir=None,
|
| |
+ repotype='main',
|
| |
+ revfrom=None,
|
| |
+ revto=None,
|
| |
+ is_internal=False,
|
| |
+ )
|
| |
+ )
|
| |
+
|
| |
+ self.expect_info_msg("Committer push to unprotected")
|
| |
|
| |
class DistGitAuthTestsFedora(DistGitAuthTests):
|
| |
dga_config = {
|
| |
This fixes #84