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')
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')
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')