Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Debian New Member Process
nm.debian.org
Commits
e3b76749
Commit
e3b76749
authored
Jun 02, 2016
by
Enrico Zini
Browse files
Added functions to manage common perms transitions, and made advocates perms-irrelevant
parent
2456d406
Changes
2
Hide whitespace changes
Inline
Side-by-side
backend/unittest.py
View file @
e3b76749
...
@@ -239,6 +239,9 @@ class PersonFixtureMixin(BaseFixtureMixin):
...
@@ -239,6 +239,9 @@ class PersonFixtureMixin(BaseFixtureMixin):
cls
.
persons
.
create
(
"dd_e"
,
status
=
const
.
STATUS_EMERITUS_DD
)
cls
.
persons
.
create
(
"dd_e"
,
status
=
const
.
STATUS_EMERITUS_DD
)
# dd, removed
# dd, removed
cls
.
persons
.
create
(
"dd_r"
,
status
=
const
.
STATUS_REMOVED_DD
)
cls
.
persons
.
create
(
"dd_r"
,
status
=
const
.
STATUS_REMOVED_DD
)
# unrelated active am
fd
=
cls
.
persons
.
create
(
"activeam"
,
status
=
const
.
STATUS_DD_NU
)
cls
.
ams
.
create
(
"activeam"
,
person
=
fd
)
# fd
# fd
fd
=
cls
.
persons
.
create
(
"fd"
,
status
=
const
.
STATUS_DD_NU
)
fd
=
cls
.
persons
.
create
(
"fd"
,
status
=
const
.
STATUS_DD_NU
)
cls
.
ams
.
create
(
"fd"
,
person
=
fd
,
is_fd
=
True
)
cls
.
ams
.
create
(
"fd"
,
person
=
fd
,
is_fd
=
True
)
...
...
process/tests/test_perms.py
View file @
e3b76749
...
@@ -63,6 +63,49 @@ class ProcExpected(object):
...
@@ -63,6 +63,49 @@ class ProcExpected(object):
self
.
keycheck
=
ExpectedSets
(
"{visitor} visiting app's keycheck requirement"
,
"{problem} permissions {mismatch}"
)
self
.
keycheck
=
ExpectedSets
(
"{visitor} visiting app's keycheck requirement"
,
"{problem} permissions {mismatch}"
)
self
.
am_ok
=
ExpectedSets
(
"{visitor} visiting app's am_ok requirement"
,
"{problem} permissions {mismatch}"
)
self
.
am_ok
=
ExpectedSets
(
"{visitor} visiting app's am_ok requirement"
,
"{problem} permissions {mismatch}"
)
def
patch_generic_process_started
(
self
):
self
.
proc
.
set
(
"app dd_nu dd_u activeam fd dam"
,
"update_keycheck view_person_audit_log"
)
self
.
proc
.
patch
(
"activeam fd dam app"
,
"+edit_bio +edit_ldap +view_mbox"
)
self
.
proc
.
patch
(
"fd dam app"
,
"+request_new_status"
)
self
.
proc
.
patch
(
"fd dam"
,
"+proc_freeze"
)
self
.
proc
.
patch
(
"dc dc_ga dm dm_ga dd_nu dd_u dd_e dd_r activeam fd dam app"
,
"+add_log"
)
self
.
intent
.
patch
(
"fd dam app"
,
"+edit_statements"
)
self
.
intent
.
patch
(
"activeam fd dam dd_nu dd_u"
,
"+req_approve +req_unapprove"
)
self
.
sc_dmup
.
patch
(
"fd dam app"
,
"+edit_statements"
)
self
.
sc_dmup
.
patch
(
"activeam fd dam dd_nu dd_u"
,
"+req_approve +req_unapprove"
)
self
.
advocate
.
patch
(
"activeam fd dam dd_nu dd_u"
,
"+edit_statements +req_approve +req_unapprove"
)
if
self
.
keycheck
:
pass
if
self
.
am_ok
:
pass
def
patch_generic_process_frozen
(
self
):
self
.
proc
.
patch
(
"fd dam"
,
"-proc_freeze +proc_unfreeze +proc_approve"
)
self
.
proc
.
patch
(
"activeam app"
,
"-edit_bio -edit_ldap"
)
self
.
intent
.
patch
(
"app"
,
"-edit_statements"
)
self
.
intent
.
patch
(
"activeam dd_nu dd_u"
,
"-req_approve -req_unapprove"
)
self
.
sc_dmup
.
patch
(
"app"
,
"-edit_statements"
)
self
.
sc_dmup
.
patch
(
"activeam dd_nu dd_u"
,
"-req_approve -req_unapprove"
)
self
.
advocate
.
patch
(
"activeam dd_nu dd_u dm dm_ga"
,
"-edit_statements"
)
self
.
advocate
.
patch
(
"activeam dd_nu dd_u"
,
"-req_approve -req_unapprove"
)
if
self
.
keycheck
:
pass
if
self
.
am_ok
:
pass
def
patch_generic_process_approved
(
self
):
self
.
proc
.
patch
(
"fd dam"
,
"-proc_unfreeze -proc_approve +proc_unapprove"
)
def
patch_generic_process_closed
(
self
):
self
.
proc
.
patch
(
"fd dam"
,
"-proc_unapprove"
)
self
.
proc
.
patch
(
"dc dc_ga dm dm_ga dd_nu dd_u dd_e dd_r activeam fd dam app"
,
"-add_log"
)
self
.
intent
.
patch
(
"fd dam"
,
"-edit_statements -req_approve -req_unapprove"
)
self
.
sc_dmup
.
patch
(
"fd dam"
,
"-edit_statements -req_approve -req_unapprove"
)
self
.
advocate
.
patch
(
"fd dam"
,
"-edit_statements -req_approve -req_unapprove"
)
if
self
.
keycheck
:
pass
if
self
.
am_ok
:
pass
#class TestPermsRequirementIntent(ProcessFixtureMixin, TestCase):
#class TestPermsRequirementIntent(ProcessFixtureMixin, TestCase):
# @classmethod
# @classmethod
...
@@ -254,60 +297,46 @@ class TestVisitApplicant(ProcessFixtureMixin, TestCase):
...
@@ -254,60 +297,46 @@ class TestVisitApplicant(ProcessFixtureMixin, TestCase):
self
.
persons
.
app
.
status
=
self
.
processes
.
app
.
applying_for
self
.
persons
.
app
.
status
=
self
.
processes
.
app
.
applying_for
self
.
persons
.
app
.
save
(
audit_skip
=
True
)
self
.
persons
.
app
.
save
(
audit_skip
=
True
)
def
test_dc_dcga
_adv_dm
(
self
):
def
test_dc_dcga
(
self
):
"""
"""
Test all visit combinations for an applicant from dc to dc_ga
, with a dm advocate
Test all visit combinations for an applicant from dc to dc_ga
"""
"""
self
.
persons
.
create
(
"app"
,
status
=
const
.
STATUS_DC
)
expected
=
ProcExpected
()
expected
=
ProcExpected
()
expected
.
keycheck
=
None
expected
.
am_ok
=
None
# Apply
self
.
persons
.
create
(
"app"
,
status
=
const
.
STATUS_DC
)
expected
.
starts
.
set
(
"dc_ga dm dd_u dd_nu"
)
expected
.
starts
.
set
(
"dc_ga dm dd_u dd_nu"
)
self
.
assertPerms
(
expected
)
self
.
assertPerms
(
expected
)
# Start process
self
.
persons
.
create
(
"adv"
,
status
=
const
.
STATUS_DM
)
self
.
processes
.
create
(
"app"
,
person
=
self
.
persons
.
app
,
applying_for
=
const
.
STATUS_DC_GA
)
self
.
processes
.
create
(
"app"
,
person
=
self
.
persons
.
app
,
applying_for
=
const
.
STATUS_DC_GA
)
expected
.
patch_generic_process_started
()
expected
.
starts
.
patch
(
"-dc_ga"
)
expected
.
starts
.
patch
(
"-dc_ga"
)
expected
.
proc
.
set
(
"fd dam"
,
"update_keycheck edit_bio edit_ldap view_person_audit_log view_mbox request_new_status proc_freeze"
)
expected
.
proc
.
patch
(
"fd dam"
,
"+edit_ldap"
)
expected
.
proc
.
set
(
"app"
,
"update_keycheck edit_bio edit_ldap view_person_audit_log view_mbox request_new_status"
)
expected
.
proc
.
patch
(
"app"
,
"+edit_ldap"
)
expected
.
proc
.
set
(
"dd_nu dd_u"
,
"view_person_audit_log update_keycheck"
)
expected
.
advocate
.
patch
(
"dm dm_ga"
,
"+edit_statements"
)
expected
.
proc
.
patch
(
"dc dc_ga dm dm_ga dd_nu dd_u dd_e dd_r fd dam app adv"
,
"+add_log"
)
expected
.
intent
.
patch
(
"fd dam app"
,
"+edit_statements"
)
expected
.
intent
.
patch
(
"fd dam dd_nu dd_u"
,
"+req_approve +req_unapprove"
)
expected
.
sc_dmup
.
patch
(
"fd dam app"
,
"+edit_statements"
)
expected
.
sc_dmup
.
patch
(
"fd dam dd_nu dd_u"
,
"+req_approve +req_unapprove"
)
expected
.
advocate
.
patch
(
"fd dam adv dd_nu dd_u dm dm_ga"
,
"+edit_statements"
)
expected
.
advocate
.
patch
(
"fd dam dd_nu dd_u"
,
"+req_approve +req_unapprove"
)
expected
.
keycheck
=
None
expected
.
am_ok
=
None
self
.
assertPerms
(
expected
)
self
.
assertPerms
(
expected
)
# Freeze for review
# Freeze for review
self
.
_freeze_process
(
"fd"
)
self
.
_freeze_process
(
"fd"
)
expected
.
proc
.
patch
(
"fd dam"
,
"-proc_freeze +proc_unfreeze +proc_approve"
)
expected
.
patch_generic_process_frozen
()
expected
.
proc
.
patch
(
"app"
,
"-edit_bio -edit_ldap"
)
expected
.
advocate
.
patch
(
"dm dm_ga"
,
"-edit_statements"
)
expected
.
intent
.
patch
(
"app"
,
"-edit_statements"
)
expected
.
intent
.
patch
(
"dd_nu dd_u"
,
"-req_approve -req_unapprove"
)
expected
.
sc_dmup
.
patch
(
"app"
,
"-edit_statements"
)
expected
.
sc_dmup
.
patch
(
"dd_nu dd_u"
,
"-req_approve -req_unapprove"
)
expected
.
advocate
.
patch
(
"adv dd_nu dd_u dm dm_ga"
,
"-edit_statements"
)
expected
.
advocate
.
patch
(
"dd_nu dd_u"
,
"-req_approve -req_unapprove"
)
self
.
assertPerms
(
expected
)
self
.
assertPerms
(
expected
)
# Approve
# Approve
self
.
_approve_process
(
"dam"
)
self
.
_approve_process
(
"dam"
)
expected
.
p
roc
.
patch
(
"fd dam"
,
"-proc_unfreeze -proc_approve +proc_un
approve
"
)
expected
.
p
atch_generic_process_
approve
d
(
)
# Finalize
# Finalize
self
.
_close_process
()
self
.
_close_process
()
expected
.
patch_generic_process_closed
()
expected
.
starts
.
patch
(
"-dc_ga -dm +dm_ga"
)
expected
.
starts
.
patch
(
"-dc_ga -dm +dm_ga"
)
expected
.
proc
.
patch
(
"fd dam"
,
"-edit_ldap -proc_unapprove"
)
expected
.
proc
.
patch
(
"fd dam"
,
"-edit_ldap"
)
expected
.
proc
.
patch
(
"dc dc_ga dm dm_ga dd_nu dd_u dd_e dd_r fd dam app adv"
,
"-add_log"
)
expected
.
intent
.
patch
(
"fd dam"
,
"-edit_statements -req_approve -req_unapprove"
)
expected
.
sc_dmup
.
patch
(
"fd dam"
,
"-edit_statements -req_approve -req_unapprove"
)
expected
.
advocate
.
patch
(
"fd dam"
,
"-edit_statements -req_approve -req_unapprove"
)
self
.
assertPerms
(
expected
)
self
.
assertPerms
(
expected
)
# TODO: test log actions
# TODO: intent with no statements
# TODO: intent with no statements
# TODO: intent with a statement
# TODO: intent with a statement
# TODO: intent approved
# TODO: intent approved
...
@@ -335,40 +364,6 @@ class TestVisitApplicant(ProcessFixtureMixin, TestCase):
...
@@ -335,40 +364,6 @@ class TestVisitApplicant(ProcessFixtureMixin, TestCase):
# expected.patch_advs("fd dam dd_nu dd_u", "-dm +dm_ga")
# expected.patch_advs("fd dam dd_nu dd_u", "-dm +dm_ga")
# self.assertApplicantPermsFinal(expected)
# self.assertApplicantPermsFinal(expected)
# def test_dc_dcga_adv_dd(self):
# """
# Test all visit combinations for an applicant from dc to dc_ga, with a dd advocate
# """
# self.persons.create("app", status=const.STATUS_DC)
# self.persons.create("adv", status=const.STATUS_DD_NU)
# self.processes.create("app", person=self.persons.app, applying_for=const.STATUS_DC_GA, progress=const.PROGRESS_APP_RCVD)
#
# expected = ExpectedPerms({
# "fd dam app": "update_keycheck edit_bio edit_ldap view_person_audit_log see_statements edit_statements view_mbox request_new_status",
# "adv dd_nu dd_u": "view_person_audit_log",
# }, advs={
# "fd dam adv dd_nu dd_u": "dc_ga dm dd_u dd_nu",
# "dm dm_ga": "dc_ga",
# })
# self.assertApplicantPermsInitialProcess(expected)
#
# self.processes.app.advocates.add(self.persons.adv)
# expected.set_perms("adv", "update_keycheck edit_bio edit_ldap view_person_audit_log see_statements view_mbox")
# expected.patch_advs("adv", "-dc_ga")
# self.assertApplicantPermsHasAdvocate(expected)
#
# expected.patch_perms("app", "-edit_ldap")
# expected.set_perms("adv", "view_person_audit_log view_mbox")
# expected.patch_advs("fd dam dd_nu dd_u", "-dc_ga")
# expected.patch_advs("dm dm_ga", "-dc_ga")
# self.assertApplicantPermsAMApproved(expected)
#
# self.persons.app.status = self.processes.app.applying_for
# self.persons.app.save(audit_skip=True)
# expected.patch_perms("fd dam app", "-edit_ldap")
# expected.patch_advs("fd dam adv dd_nu dd_u", "-dm +dm_ga")
# self.assertApplicantPermsFinal(expected)
#
# def test_dm_dmga_adv_self(self):
# def test_dm_dmga_adv_self(self):
# """
# """
# Test all visit combinations for an applicant from dm to dm_ga, with self as advocate
# Test all visit combinations for an applicant from dm to dm_ga, with self as advocate
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment