def test_E_AssertDisjoint(self): with self.assertRaises(AssertionError): phlsys_namedtuple.make_named_tuple( 'T', required=['r1', 'r2'], defaults={'r1': 1, 'd2': 2}, ignored=['i1', 'i2']) with self.assertRaises(AssertionError): phlsys_namedtuple.make_named_tuple( 'T', required=['r1', 'r2'], defaults={'d1': 1, 'd2': 2}, ignored=['r1', 'i2']) with self.assertRaises(AssertionError): phlsys_namedtuple.make_named_tuple( 'T', required=['r1', 'r2'], defaults={'d1': 1, 'd2': 2}, ignored=['d1', 'i2']) with self.assertRaises(AssertionError): phlsys_namedtuple.make_named_tuple( 'T', required=['a', 'r2'], defaults={'a': 1, 'd2': 2}, ignored=['a', 'i2'])
def test_F_IndependentFactory(self): factory1 = phlsys_namedtuple.make_named_tuple('T1', [], {}, []) phlsys_namedtuple.make_named_tuple('T2', [], {}, []) self.assertEqual(type(factory1()).__name__, 'T1') phlsys_namedtuple.make_named_tuple('T1', ['r1'], {}, []) factory1() phlsys_namedtuple.make_named_tuple('T1', [], {'d1': 1}, []) self.assertFalse(hasattr(factory1(), 'd1'))
# Public Assignments: # QueryResponse # # ----------------------------------------------------------------------------- # (this contents block is generated, edits will be lost) # ============================================================================= from __future__ import absolute_import from __future__ import division from __future__ import print_function import phlsys_namedtuple QueryResponse = phlsys_namedtuple.make_named_tuple( 'QueryResponse', required=['name', 'phid'], defaults={}, ignored=['dateCreated', 'members', 'dateModified', 'id', 'slugs']) def query_some(conduit, max_items, offset): """Return a list of some projects from the supplied conduit. :conduit: supports call() :max_items: the maximum number of items to return :offset: the offset into the list of all possible items :returns: a list of QueryResponse """ d = { 'limit': max_items,
# # ----------------------------------------------------------------------------- # (this contents block is generated, edits will be lost) # ============================================================================= from __future__ import absolute_import from __future__ import division from __future__ import print_function import phlsys_conduit import phlsys_namedtuple QueryResponse = phlsys_namedtuple.make_named_tuple( 'phlcon_user__QueryResponse', required=['phid', 'userName', 'realName', 'image', 'uri', 'roles'], defaults={}, ignored=['currentStatus', 'currentStatusUntil', 'primaryEmail']) class UserPhidCache(object): """Efficiently retrieve the PHID for specified usernames.""" def __init__(self, conduit): """Construct a cache attached to the specified 'conduit'.""" super(UserPhidCache, self).__init__() self._user_to_phid = {} self._hinted_users = set() self._conduit = conduit
# Enumerate some of the fields that Differential expects to be able fill out # based on commit messages, these are accepted by create_revision and # accept_revision # from phabricator/.../...DefaultFieldSelector.php class MessageFields(object): # XXX: will derive from Enum in Python 3.4+ title = "title" summary = "summary" test_plan = "testPlan" reviewer_phids = "reviewerPHIDs" cc_phids = "ccPHIDs" CreateRawDiffResponse = phlsys_namedtuple.make_named_tuple( 'CreateRawDiffResponse', required=['id', 'uri'], defaults={}, ignored=[]) GetDiffIdResponse = phlsys_namedtuple.make_named_tuple( 'phlcon_differential__GetDiffIdResponse', required=[ 'parent', 'properties', 'sourceControlSystem', 'sourceControlPath', 'dateCreated', 'dateModified', 'lintStatus', 'bookmark', 'changes', 'revisionID', 'sourceControlBaseRevision', 'branch', 'projectName', 'unitStatus', 'creationMethod', 'id', 'description'], defaults={}, ignored=[])
def setUp(self): self.factory = phlsys_namedtuple.make_named_tuple( 'T', required=['r1', 'r2'], defaults={'d1': 1, 'd2': 2}, ignored=['i1', 'i2'])
# Public Assignments: # QueryResponse # # ----------------------------------------------------------------------------- # (this contents block is generated, edits will be lost) # ============================================================================= from __future__ import absolute_import import phlsys_conduit import phlsys_namedtuple QueryResponse = phlsys_namedtuple.make_named_tuple( 'phlcon_user__QueryResponse', required=['phid', 'userName', 'realName', 'image', 'uri', 'roles'], defaults={}, ignored=['currentStatus', 'currentStatusUntil']) def is_no_such_error(e): """Return True if the supplied ConduitException is due to unknown user. :e: a ConduitException :returns: True if the supplied ConduitException is due to unknown user """ errConduitCore = "ERR-CONDUIT-CORE" noSuchEmail = "" noSuchEmail += "Array for %Ls conversion is empty. " noSuchEmail += "Query: SELECT * FROM %s WHERE userPHID IN (%Ls) "
} # from ManiphestTaskQuery.php ORDERS = { 'priority': 'order-priority', 'created': 'order-created', 'modified': 'order-modified', 'title': 'order-title', } CreateTaskResponse = phlsys_namedtuple.make_named_tuple( 'CreateTaskResponse', required=[ 'id', 'uri', 'title', 'status', 'priority', 'authorPHID', 'phid', 'description', 'objectName', 'auxiliary', 'ccPHIDs', 'ownerPHID', 'dateModified', 'dateCreated', 'projectPHIDs' ], defaults={ 'statusName': None, }, ignored=['priorityColor', 'isClosed', 'dependsOnTaskPHIDs']) def create_task(conduit, title, description="", priority=None, owner=None, ccs=None, projects=None): """Create a new Maniphest task using the supplied 'conduit'.
'duplicate': 'status-duplicate', } # from ManiphestTaskQuery.php ORDERS = { 'priority': 'order-priority', 'created': 'order-created', 'modified': 'order-modified', 'title': 'order-title', } CreateTaskResponse = phlsys_namedtuple.make_named_tuple( 'CreateTaskResponse', required=[ 'id', 'uri', 'title', 'status', 'priority', 'authorPHID', 'phid', 'description', 'objectName', 'auxiliary', 'ccPHIDs', 'ownerPHID', 'dateModified', 'dateCreated', 'projectPHIDs' ], defaults={}, ignored=[]) def create_task( conduit, title, description="", priority=None, owner=None, ccs=None, projects=None): """Create a new Maniphest task using the supplied 'conduit'.
# # Public Assignments: # QueryResponse # # ----------------------------------------------------------------------------- # (this contents block is generated, edits will be lost) # ============================================================================= from __future__ import absolute_import import phlsys_namedtuple QueryResponse = phlsys_namedtuple.make_named_tuple( 'QueryResponse', required=['name', 'phid'], defaults={}, ignored=['dateCreated', 'members', 'dateModified', 'id']) def query_some(conduit, max_items, offset): """Return a list of some projects from the supplied conduit. :conduit: supports call() :max_items: the maximum number of items to return :offset: the offset into the list of all possible items :returns: a list of QueryResponse """ d = { 'limit': max_items,
# Public Assignments: # CreatePasteResponse # # ----------------------------------------------------------------------------- # (this contents block is generated, edits will be lost) # ============================================================================= from __future__ import absolute_import import phlsys_namedtuple CreatePasteResponse = phlsys_namedtuple.make_named_tuple( 'CreatePasteResponse', required=[ 'id', 'phid', 'authorPHID', 'filePHID', 'title', 'parentPHID', 'dateCreated', 'language', 'objectName', 'uri', 'content' ], defaults={}, ignored=[]) def create_paste(conduit, content, title="", language=""): """Creates a paste in Phabricator. :conduit: conduit to operate on :content: the content of the paste :title: the title of the paste :language: the programming language of the paste ie. c++ :returns: pasteResponse named tuple """
# CreatePasteResponse # # ----------------------------------------------------------------------------- # (this contents block is generated, edits will be lost) # ============================================================================= from __future__ import absolute_import from __future__ import division from __future__ import print_function import phlsys_namedtuple CreatePasteResponse = phlsys_namedtuple.make_named_tuple( 'CreatePasteResponse', required=[ 'id', 'phid', 'authorPHID', 'filePHID', 'title', 'parentPHID', 'dateCreated', 'language', 'objectName', 'uri', 'content' ], defaults={}, ignored=[]) def create_paste(conduit, content, title="", language=""): """Creates a paste in Phabricator. :conduit: conduit to operate on :content: the content of the paste :title: the title of the paste :language: the programming language of the paste ie. c++ :returns: pasteResponse named tuple """