Beispiel #1
0
    def setUp(self):
        ActionTestCase.setUp(self)
        self.result = []

        class AppendResult:
            def __init__(inner_self, name):
                inner_self.name = name

            def __call__(inner_self, *args, **kw):
                self.result.append((inner_self.name, args, kw))
                if inner_self.name == 'set':
                    return kw
                return '17'

        self.client.db.security.hasPermission = true
        self.client.classname = 'issue'
        self.client.base = 'http://tracker/'
        self.client.nodeid = '4711'
        self.client.template = 'item'
        self.client.db.classes.create = AppendResult('create')
        self.client.db.classes.set = AppendResult('set')
        self.client.db.classes.getprops = lambda: \
            ({'messages':hyperdb.Multilink('msg')
             ,'content':hyperdb.String()
             ,'files':hyperdb.Multilink('file')
             })
        self.action = EditItemAction(self.client)
 def getprops(self):
     return {
         'string': hyperdb.String(),
         'number': hyperdb.Number(),
         'boolean': hyperdb.Boolean(),
         'password': hyperdb.Password(),
         'date': hyperdb.Date(),
         'interval': hyperdb.Interval(),
         'link': hyperdb.Link('test'),
         'link2': hyperdb.Link('test2'),
         'multilink': hyperdb.Multilink('test'),
         'multilink2': hyperdb.Multilink('test2'),
     }
Beispiel #3
0
 def __init__(self, db, classname, **properties):
     """The newly-created class automatically includes the "messages",
     "files", "nosy", and "superseder" properties.  If the 'properties'
     dictionary attempts to specify any of these properties or a
     "creation" or "activity" property, a ValueError is raised.
     """
     if 'title' not in properties:
         properties['title'] = hyperdb.String(indexme='yes')
     if 'messages' not in properties:
         properties['messages'] = hyperdb.Multilink("msg")
     if 'files' not in properties:
         properties['files'] = hyperdb.Multilink("file")
     if 'nosy' not in properties:
         # note: journalling is turned off as it really just wastes
         # space. this behaviour may be overridden in an instance
         properties['nosy'] = hyperdb.Multilink("user", do_journal="no")
     if 'superseder' not in properties:
         properties['superseder'] = hyperdb.Multilink(classname)
     Class.__init__(self, db, classname, **properties)
Beispiel #4
0
    def setUp(self):
        self.dirname = '_test_cgi_form'
        # set up and open a tracker
        self.instance = db_test_base.setupTracker(self.dirname)

        # open the database
        self.db = self.instance.open('admin')
        self.db.tx_Source = "web"
        self.db.user.create(username='******',
                            address='*****@*****.**',
                            realname='Bork, Chef',
                            roles='User')
        self.db.user.create(username='******',
                            address='*****@*****.**',
                            roles='User',
                            realname='Contrary, Mary')

        self.db.issue.addprop(tx_Source=hyperdb.String())
        self.db.msg.addprop(tx_Source=hyperdb.String())

        self.db.post_init()

        vars = {}
        thisdir = os.path.dirname(__file__)
        execfile(os.path.join(thisdir, "tx_Source_detector.py"), vars)
        vars['init'](self.db)

        test = self.instance.backend.Class(self.db,
                                           "test",
                                           string=hyperdb.String(),
                                           number=hyperdb.Number(),
                                           boolean=hyperdb.Boolean(),
                                           link=hyperdb.Link('test'),
                                           multilink=hyperdb.Multilink('test'),
                                           date=hyperdb.Date(),
                                           messages=hyperdb.Multilink('msg'),
                                           interval=hyperdb.Interval())

        # compile the labels re
        classes = '|'.join(self.db.classes.keys())
        self.FV_SPECIAL = re.compile(FormParser.FV_LABELS % classes,
                                     re.VERBOSE)
Beispiel #5
0
    def setUp(self):
        self.dirname = '_test_cgi_form'
        # set up and open a tracker
        self.instance = db_test_base.setupTracker(self.dirname)

        # open the database
        self.db = self.instance.open('admin')
        self.db.user.create(username='******', address='*****@*****.**',
            realname='Bork, Chef', roles='User')
        self.db.user.create(username='******', address='*****@*****.**',
            roles='User', realname='Contrary, Mary')

        test = self.instance.backend.Class(self.db, "test",
            string=hyperdb.String(), number=hyperdb.Number(),
            boolean=hyperdb.Boolean(), link=hyperdb.Link('test'),
            multilink=hyperdb.Multilink('test'), date=hyperdb.Date(),
            interval=hyperdb.Interval())

        # compile the labels re
        classes = '|'.join(self.db.classes.keys())
        self.FV_SPECIAL = re.compile(FormParser.FV_LABELS%classes,
            re.VERBOSE)
Beispiel #6
0
 def setUp(self):
     SearchActionTestCase.setUp(self)
     self.client.db.classes.get_transitive_prop = lambda x: \
         hyperdb.Multilink('foo')