示例#1
0
    def test_22_deprecated(self):

        def getdep(ctx, category=None):
            return [ name for name in ctx.schemes() if ctx.handler(name, category).deprecated
                   ]

        cc = CryptContext(deprecated=['md5_crypt'])
        cc.update(schemes=['md5_crypt', 'des_crypt'])
        self.assertEqual(getdep(cc), ['md5_crypt'])
        cc = CryptContext(deprecated=['md5_crypt'], schemes=['md5_crypt', 'des_crypt'])
        self.assertEqual(getdep(cc), ['md5_crypt'])
        self.assertRaises(TypeError, CryptContext, deprecated=[hash.md5_crypt], schemes=[
         'md5_crypt', 'des_crypt'])
        cc = CryptContext(deprecated='md5_crypt,des_crypt', schemes=['md5_crypt', 'des_crypt', 'sha256_crypt'])
        self.assertEqual(getdep(cc), ['md5_crypt', 'des_crypt'])
        self.assertRaises(KeyError, CryptContext, schemes=['des_crypt'], deprecated=[
         'md5_crypt'])
        self.assertRaises(ValueError, CryptContext, schemes=[
         'des_crypt'], deprecated=[
         'des_crypt'])
        self.assertRaises(ValueError, CryptContext, schemes=[
         'des_crypt', 'md5_crypt'], admin__context__deprecated=[
         'des_crypt', 'md5_crypt'])
        self.assertRaises(ValueError, CryptContext, schemes=[
         'des_crypt', 'md5_crypt'], default='md5_crypt', deprecated='md5_crypt')
        self.assertRaises(ValueError, CryptContext, schemes=[
         'des_crypt', 'md5_crypt'], default='md5_crypt', admin__context__deprecated='md5_crypt')
        self.assertRaises(ValueError, CryptContext, schemes=[
         'des_crypt', 'md5_crypt'], admin__context__default='md5_crypt', deprecated='md5_crypt')
        self.assertRaises(ValueError, CryptContext, schemes=[
         'des_crypt', 'md5_crypt'], admin__context__default='md5_crypt', admin__context__deprecated='md5_crypt')
        CryptContext(schemes=[
         'des_crypt', 'md5_crypt'], deprecated='md5_crypt', admin__context__default='md5_crypt', admin__context__deprecated=[])
        self.assertRaises(TypeError, CryptContext, deprecated=123)
        cc = CryptContext(deprecated=['md5_crypt'], schemes=[
         'md5_crypt', 'des_crypt'], admin__context__deprecated=[
         'des_crypt'])
        self.assertEqual(getdep(cc), ['md5_crypt'])
        self.assertEqual(getdep(cc, 'user'), ['md5_crypt'])
        self.assertEqual(getdep(cc, 'admin'), ['des_crypt'])
        cc = CryptContext(deprecated=['md5_crypt'], schemes=[
         'md5_crypt', 'des_crypt'], admin__context__deprecated=[])
        self.assertEqual(getdep(cc), ['md5_crypt'])
        self.assertEqual(getdep(cc, 'user'), ['md5_crypt'])
        self.assertEqual(getdep(cc, 'admin'), [])
        return
示例#2
0
 def test_23_default(self):
     self.assertEqual(CryptContext(default='md5_crypt').to_dict(), dict(default='md5_crypt'))
     ctx = CryptContext(default='md5_crypt', schemes=['des_crypt', 'md5_crypt'])
     self.assertEqual(ctx.default_scheme(), 'md5_crypt')
     ctx = CryptContext(default=hash.md5_crypt, schemes=['des_crypt', 'md5_crypt'])
     self.assertEqual(ctx.default_scheme(), 'md5_crypt')
     ctx = CryptContext(schemes=['des_crypt', 'md5_crypt'])
     self.assertEqual(ctx.default_scheme(), 'des_crypt')
     ctx.update(deprecated='des_crypt')
     self.assertEqual(ctx.default_scheme(), 'md5_crypt')
     self.assertRaises(KeyError, CryptContext, schemes=['des_crypt'], default='md5_crypt')
     self.assertRaises(TypeError, CryptContext, default=1)
     ctx = CryptContext(default='des_crypt', schemes=[
      'des_crypt', 'md5_crypt'], admin__context__default='md5_crypt')
     self.assertEqual(ctx.default_scheme(), 'des_crypt')
     self.assertEqual(ctx.default_scheme('user'), 'des_crypt')
     self.assertEqual(ctx.default_scheme('admin'), 'md5_crypt')
示例#3
0
 def test_12_update(self):
     ctx = CryptContext(**self.sample_1_dict)
     ctx.update()
     self.assertEqual(ctx.to_dict(), self.sample_1_dict)
     ctx = CryptContext(**self.sample_1_dict)
     ctx.update(**self.sample_2_dict)
     self.assertEqual(ctx.to_dict(), self.sample_12_dict)
     ctx.update(**self.sample_3_dict)
     self.assertEqual(ctx.to_dict(), self.sample_123_dict)
     ctx = CryptContext(**self.sample_1_dict)
     ctx.update(self.sample_2_dict)
     self.assertEqual(ctx.to_dict(), self.sample_12_dict)
     ctx = CryptContext(**self.sample_1_dict)
     ctx.update(self.sample_2_unicode)
     self.assertEqual(ctx.to_dict(), self.sample_12_dict)
     self.assertRaises(TypeError, ctx.update, {}, {})
     self.assertRaises(TypeError, ctx.update, {}, schemes=['des_crypt'])
     self.assertRaises(TypeError, ctx.update, None)
     return
示例#4
0
    def test_61_autodeprecate(self):

        def getstate(ctx, category=None):
            return [ ctx.handler(scheme, category).deprecated for scheme in ctx.schemes() ]

        ctx = CryptContext('sha256_crypt,md5_crypt,des_crypt', deprecated='auto')
        self.assertEqual(getstate(ctx, None), [False, True, True])
        self.assertEqual(getstate(ctx, 'admin'), [False, True, True])
        ctx.update(default='md5_crypt')
        self.assertEqual(getstate(ctx, None), [True, False, True])
        self.assertEqual(getstate(ctx, 'admin'), [True, False, True])
        ctx.update(admin__context__default='des_crypt')
        self.assertEqual(getstate(ctx, None), [True, False, True])
        self.assertEqual(getstate(ctx, 'admin'), [True, True, False])
        ctx = CryptContext(['sha256_crypt'], deprecated='auto')
        self.assertEqual(getstate(ctx, None), [False])
        self.assertEqual(getstate(ctx, 'admin'), [False])
        self.assertRaises(ValueError, CryptContext, 'sha256_crypt,md5_crypt', deprecated='auto,md5_crypt')
        self.assertRaises(ValueError, CryptContext, 'sha256_crypt,md5_crypt', deprecated='md5_crypt,auto')
        return