示例#1
0
文件: test.py 项目: RayPlante/pynoid
 def test_mint_ns(self):
     ns = range(10)
     for n in ns:
         self.assertEqual(pynoid.mint('d', n), pynoid.DIGIT[n])
     ns = range(29)
     for n in ns:
         self.assertEqual(pynoid.mint('e', n), pynoid.XDIGIT[n])
示例#2
0
文件: test.py 项目: no-reply/pynoid
 def test_mint_ns(self):
     ns = range(10)
     for n in ns:
         self.assertEqual(pynoid.mint('d', n), pynoid.DIGIT[n])
     ns = range(29)
     for n in ns:
         self.assertEqual(pynoid.mint('e', n), pynoid.XDIGIT[n])
示例#3
0
 def _seededmint(self, mask, n):
     out = noid.mint(self._seededmask, n)
     if self.issued(out):
         log.debug("apparent EDI-ARK id collision: %s", out)
         self._collision_count += 1
         mask = out[:-1] + "0.zek"
         while self.issued(out):
             out = noid.mint(mask, self._annotn)
             self._annotn += 1
     return out
def new(request, ref=None):
    uriNeeded = True
    while uriNeeded == True:
        # assign an identifier
        identifier = pynoid.mint('zeek', random.randint(0, 100000))
        uri = Namespace("http://data.library.oregonstate.edu/person/")[identifier]
        uriNeeded = queryManager.ask(uri) # if this identifier is already in use, let's get another one
    forms = buildForm()
       
    return render_to_response("resource.tpl", {'uri': str(uri), 'short': uri.split('/')[-1], 'res': {}, 'form': forms['form'], 'variants': forms['variants']})
示例#5
0
    def mint(self, data=None):
        """
        return an available identifier string.  
     
        Whether the data parameter is supported depends on the support 
        provided by the IDRegistry instance provided at construction.  
        The default registry (used if no registry was provided) does not 
        support the data parameter; if provided, it will be ignored.  

        :param data dict:  any data to associate with the identifier.  (See
                           note above about its support.)
        """
        out = noid.mint(self.mask, self.nextn)
        self.nextn += 1
        while self.issued(out):
            out = noid.mint(self.mask, self.nextn)
            self.nextn += 1
        self.registry.registerID(out, data)
        return out
示例#6
0
 def test_masks(self):
     for mask in "dddd eeee eded".split():
         mask = "mc5."+mask
         self.minter = minter.NoidMinter(mask)
         for i in range(5, 6000, 5):
             id = noid.mint(mask, i)
             self.minter.nextn = i
             self.assertFalse(self.minter.issued(id),
               "id {0} prematurely issued for mask={1}".format(repr(id),
                                                               repr(mask)))
             mid = self.minter.mint()
             self.assertEqual(mid, id,
                               "{0} != {1} for mask={2}".format(repr(mid),
                                                                repr(id),
                                                                repr(mask)))
             self.assertTrue(self.minter.issued(id), 
                "id {0} forgotten for mask={1}".format(repr(id), repr(mask)))
示例#7
0
    def test_seqFor(self):
        mask = "ede"
        reg = minter.NoidMinter.seqreg(0, "ede")

        self.assertEqual(reg.seqFor("000"), 0)
        self.assertEqual(reg.seqFor("001"), 1)
        self.assertEqual(reg.seqFor("008"), 8)
        self.assertEqual(reg.seqFor("00b"), 10)
        self.assertEqual(reg.seqFor("01f"), 42)
        self.assertEqual(reg.seqFor("10z"), 318)
        self.assertEqual(reg.seqFor("34g"), 1000)
        self.assertEqual(reg.seqFor("m79"), 5432)

        for mask in "dddd eeee eded".split():
            reg = minter.NoidMinter.seqreg(0, mask)
            for i in range(5, 6000, 5):
                n = reg.seqFor(noid.mint(mask, i))
                self.assertEqual(n, i,
                             "{0} != {1} for mask={2}".format(n, i, repr(mask)))
示例#8
0
文件: test.py 项目: RayPlante/pynoid
 def test_checkdigit(self):
     self.assertEqual(pynoid.mint('eek', 100), '3f0')
     self.assertRaises(pynoid.ValidationError, pynoid.validate, 'f30')
示例#9
0
文件: test.py 项目: no-reply/pynoid
 def test_checkdigit(self):
     self.assertEqual(pynoid.mint('eek', 100), '3f0')
     self.assertRaises(pynoid.ValidationError, pynoid.validate, 'f30')
示例#10
0
文件: test.py 项目: no-reply/pynoid
 def test_mint_z_rollover(self):
     self.assertEqual(pynoid.mint('zd', 10), '10')        
     self.assertEqual(pynoid.mint('ze', 29), '10')
示例#11
0
文件: test.py 项目: no-reply/pynoid
 def test_mint_short_term(self):
     noid = pynoid.mint()
     self.assertTrue(noid.startswith(pynoid.SHORT))
示例#12
0
文件: test.py 项目: no-reply/pynoid
 def test_scheme_append(self):
     schemes = ['doi:', 'ark:/', 'http://']
     for scheme in schemes:
         noid = pynoid.mint(scheme=scheme)
         self.assertTrue(noid.startswith(scheme))
示例#13
0
文件: test.py 项目: no-reply/pynoid
 def test_naa_append(self):
     noid = pynoid.mint(naa='abc')
     self.assertTrue(noid.startswith('abc/'))
示例#14
0
文件: test.py 项目: RayPlante/pynoid
 def test_mint_z_rollover(self):
     self.assertEqual(pynoid.mint('zd', 10), '10')
     self.assertEqual(pynoid.mint('ze', 29), '10')
示例#15
0
文件: test.py 项目: RayPlante/pynoid
 def test_naa_append(self):
     noid = pynoid.mint(naa='abc')
     self.assertTrue(noid.startswith('abc/'))
示例#16
0
文件: test.py 项目: RayPlante/pynoid
 def test_mint_short_term(self):
     noid = pynoid.mint()
     self.assertTrue(noid.startswith(pynoid.SHORT))
示例#17
0
文件: test.py 项目: RayPlante/pynoid
 def test_scheme_append(self):
     schemes = ['doi:', 'ark:/', 'http://']
     for scheme in schemes:
         noid = pynoid.mint(scheme=scheme)
         self.assertTrue(noid.startswith(scheme))