示例#1
0
 def test_31_default_scheme(self):
     ctx = CryptContext()
     self.assertRaises(KeyError, ctx.default_scheme)
     ctx = CryptContext(**self.sample_1_dict)
     self.assertEqual(ctx.default_scheme(), 'md5_crypt')
     self.assertEqual(ctx.default_scheme(resolve=True, unconfigured=True), hash.md5_crypt)
     self.assertHandlerDerivedFrom(ctx.default_scheme(resolve=True), hash.md5_crypt)
     ctx = CryptContext(**self.sample_2_dict)
     self.assertRaises(KeyError, ctx.default_scheme)
     ctx = CryptContext(schemes=self.sample_1_schemes)
     self.assertEqual(ctx.default_scheme(), 'des_crypt')
示例#2
0
    def test_20_options(self):

        def parse(**kwds):
            return CryptContext(**kwds).to_dict()

        self.assertRaises(TypeError, CryptContext, __=0.1)
        self.assertRaises(TypeError, CryptContext, default__scheme__='x')
        self.assertRaises(TypeError, CryptContext, __option='x')
        self.assertRaises(TypeError, CryptContext, default____option='x')
        self.assertRaises(TypeError, CryptContext, __scheme__option='x')
        self.assertRaises(TypeError, CryptContext, category__scheme__option__invalid=30000)
        self.assertRaises(KeyError, parse, **{'admin.context__schemes': 'md5_crypt'})
        ctx = CryptContext(**{'schemes': 'md5_crypt,des_crypt', 'admin.context__default': 'des_crypt'})
        self.assertEqual(ctx.default_scheme('admin'), 'des_crypt')
        result = dict(default='md5_crypt')
        self.assertEqual(parse(default='md5_crypt'), result)
        self.assertEqual(parse(context__default='md5_crypt'), result)
        self.assertEqual(parse(default__context__default='md5_crypt'), result)
        self.assertEqual(parse(**{'context.default': 'md5_crypt'}), result)
        self.assertEqual(parse(**{'default.context.default': 'md5_crypt'}), result)
        result = dict(admin__context__default='md5_crypt')
        self.assertEqual(parse(admin__context__default='md5_crypt'), result)
        self.assertEqual(parse(**{'admin.context.default': 'md5_crypt'}), result)
        result = dict(all__vary_rounds=0.1)
        self.assertEqual(parse(all__vary_rounds=0.1), result)
        self.assertEqual(parse(default__all__vary_rounds=0.1), result)
        self.assertEqual(parse(**{'all.vary_rounds': 0.1}), result)
        self.assertEqual(parse(**{'default.all.vary_rounds': 0.1}), result)
        result = dict(admin__all__vary_rounds=0.1)
        self.assertEqual(parse(admin__all__vary_rounds=0.1), result)
        self.assertEqual(parse(**{'admin.all.vary_rounds': 0.1}), result)
        ctx = CryptContext(['phpass', 'md5_crypt'], phpass__ident='P')
        self.assertRaises(KeyError, ctx.copy, md5_crypt__ident='P')
        self.assertRaises(KeyError, CryptContext, schemes=['des_crypt'], des_crypt__salt='xx')
        self.assertRaises(KeyError, CryptContext, schemes=['des_crypt'], all__salt='xx')
示例#3
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')