示例#1
0
 def test_exp_date(self):
     serial = b'000123456789'
     t1 = securid.Token().random(serial=serial, exp_date=date(2123,1,2))
     t2 = securid.Token().random(serial=serial, exp_date='2123-01-02')
     self.assertEqual(t1.exp_date, date(2123,1,2))
     self.assertEqual(t2.exp_date, date(2123,1,2))
     self.assertNotEqual(t1, t2)
示例#2
0
 def test_interval_30s(self):
     seed = '967863726e4a54c7cec668012e7302a6'
     serial = b'000123456789'
     t30 = securid.Token(serial=serial, seed=seed, interval=30)
     self.assertEqual(t30.at(T0), t30.at(T0 + s1))
     self.assertNotEqual(t30.at(T0), t30.at(T0 + s30))
     t60 = securid.Token(serial=serial, seed=seed, interval=60)
     self.assertNotEqual(t30.at(T0), t60.at(T0))
示例#3
0
 def test_random(self):
     serial = b'000123456789'
     t1 = securid.Token().random()
     self.assertEqual(t1.at(T2), t1.at(T2 + s1))
     t2 = securid.Token().random(serial=serial)
     self.assertEqual(t2.at(T2), t2.at(T2 + s1))
     self.assertNotEqual(t1.at(T2), t2.at(T2))
     date1 = date(2050, 1, 1)
     t3 = securid.Token.random(exp_date=date1)
     self.assertEqual(t3.exp_date, date1)
     self.assertNotEqual(t1.now(), t3.now())
示例#4
0
    def test_pin(self):
        seed = '9e2cdb3468bd84fe6cf42570d1f8559c'
        serial = '000123456789'
        pin = 1234
        t = securid.Token(serial=serial, seed=seed, pin=pin)
        self.assertEqual(t.at(T0), '079498')
        self.assertEqual(t.at(T0 + s30), '079498')
        self.assertNotEqual(t.at(T0 + s60), '079498')

        t2 = securid.Token(serial=serial, seed=seed)
        self.assertNotEqual(t.at(T0), t2.at(T0))
示例#5
0
 def test_time_left(self):
     t1 = securid.Token().random()
     self.assertEqual(t1.time_left(T1), 50)
     self.assertEqual(t1.time_left(T1 + timedelta(seconds=1)), 49)
     self.assertEqual(t1.time_left(T1 + timedelta(seconds=50)), 60)
     self.assertEqual(t1.time_left(123456), 24)
     t2 = securid.Token().random(interval=30)
     self.assertEqual(t2.time_left(T2), 28)
     self.assertEqual(t2.time_left(T2 + timedelta(seconds=1)), 27)
     self.assertEqual(t2.time_left(T2 + timedelta(seconds=28)), 30)
     self.assertEqual(t2.time_left(123456), 24)
     self.assertTrue(0 < t2.time_left() <= 30)
示例#6
0
    def test_at(self):
        seed = '9e2cdb3468bd84fe6cf42570d1f8559c'
        serial = '000123456789'
        t = securid.Token(serial=serial, seed=seed)
        self.assertEqual(t.at(T0), '078264')
        self.assertEqual(t.at(T0 + s30), '078264')
        self.assertNotEqual(t.at(T0 + s60), '078264')

        serial2 = '000987654321'
        t2 = securid.Token(serial=serial2, seed=seed)
        self.assertNotEqual(t.at(T0), t2.at(T0))

        seed2 = '884c91dc46f17970e4d08a34d852ee18'
        t3 = securid.Token(serial=serial2, seed=seed2)
        self.assertNotEqual(t3.at(T0), t2.at(T0))
示例#7
0
    def test_export(self):
        t1 = securid.Token().random(exp_date=date(2000, 1, 1))
        f1 = JSONTokenFile(token=t1)
        data = f1.export_token()
        f2 = JSONTokenFile(data=data)
        t2 = f2.get_token()
        self.assertEqual(t1, t2)

        def test_ex1():
            f = JSONTokenFile(
                token=securid.Token(serial=t1.serial, exp_date=t1.exp_date))
            f.export_token()

        self.assertRaises(InvalidSeed, test_ex1)

        def test_ex2():
            f = JSONTokenFile(token=securid.Token(
                serial=t1.serial, seed=t1.seed, exp_date=t1.exp_date))
            f.get_token().serial = None
            f.export_token()

        self.assertRaises(InvalidSerial, test_ex2)

        def test_ex3():
            f = JSONTokenFile(token=securid.Token(
                serial=t1.serial, seed=t1.seed, exp_date=t1.exp_date))
            f.get_token().serial = 'x'
            f.export_token()

        self.assertRaises(InvalidSerial, test_ex3)
示例#8
0
    def test_v2_encode_token(self):
        token = securid.Token.random(exp_date=date(2050, 1, 1))
        seed = token.seed
        serial = token.serial
        digits = token.digits
        interval = token.interval
        exp_date = token.exp_date

        token1 = securid.Token(
            seed=seed,
            serial=serial,
            digits=digits,
            interval=interval,
            exp_date=exp_date,
        )
        sf1 = StokenFile(token=token1)
        sf1.v2_encode_token()
        self.assertEqual(token1.serial, serial)
        self.assertEqual(token1.seed, seed)
        self.assertEqual(token1.digits, digits)
        self.assertEqual(token1.interval, interval)

        sf2 = StokenFile(data=sf1.data)
        self.assertEqual(sf2.get_token().serial, serial)
        self.assertEqual(sf2.get_token().seed, seed)
        self.assertEqual(sf2.get_token().digits, digits)
        self.assertEqual(sf2.get_token().interval, interval)

        for i in range(0, 10):
            self.assertEqual(sf2.get_token().at(i * 1000), token.at(i * 1000))
示例#9
0
 def test_file(self):
     with NamedTemporaryFile() as f:
         t1 = securid.Token().random(exp_date=date(2000,1,1))
         f1 = JSONTokenFile(token=t1)
         f.write(f1.export_token())
         f.flush()
         f2 = JSONTokenFile(filename=f.name)
         t2 = f2.get_token()
         self.assertEqual(t1, t2)
示例#10
0
 def test_repl(self):
     seed = '967863726e4a54c7cec668012e7302a6'
     serial = b'000123456789'
     t = securid.Token(serial=serial,
                       seed=seed,
                       interval=30,
                       label='test',
                       pin=1234)
     self.assertEqual(
         repr(t),
         "{'digits': '6', 'exp_date': '', 'interval': '30', 'issuer': '', 'label': 'test', 'pin': '1234', 'seed': '3936373836333732366534613534633763656336363830313265373330326136', 'serial': '000123456789'}",
     )
示例#11
0
 def test_number_of_digits(self):
     seed = '967863726e4a54c7cec668012e7302a6'
     serial = '432342'
     for i in range(1, 16):
         t = securid.Token(serial=serial, seed=seed, digits=i)
         self.assertEqual(len(t.at(T0)), i)
示例#12
0
 def test_serial_seed_as_bytes(self):
     seed = b'9e2cdb3468bd84fe6cf42570d1f8559c'
     serial = b'000123456789'
     t = securid.Token(serial=serial, seed=seed)
     self.assertEqual(t.at(T0), '078264')
示例#13
0
 def test_ex3():
     f = JSONTokenFile(token=securid.Token(serial=t1.serial, seed=t1.seed, exp_date=t1.exp_date))
     f.get_token().serial = 'x'
     f.export_token()
示例#14
0
 def test_ex1():
     f = JSONTokenFile(token=securid.Token(serial=t1.serial, exp_date=t1.exp_date))
     f.export_token()
示例#15
0
 def test_none_seed():
     serial = b'000123456789'
     t = securid.Token(serial=serial, seed=None)
     t.now()