当前位置: 首页>>代码示例>>Python>>正文


Python Model._overwriteFields方法代码示例

本文整理汇总了Python中girder.models.model_base.Model._overwriteFields方法的典型用法代码示例。如果您正苦于以下问题:Python Model._overwriteFields方法的具体用法?Python Model._overwriteFields怎么用?Python Model._overwriteFields使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在girder.models.model_base.Model的用法示例。


在下文中一共展示了Model._overwriteFields方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: testProjectionUtils

# 需要导入模块: from girder.models.model_base import Model [as 别名]
# 或者: from girder.models.model_base.Model import _overwriteFields [as 别名]
    def testProjectionUtils(self):
        def assertItemsEqual(a, b):
            self.assertEqual(len(a), len(b))
            self.assertEqual(sorted(a), sorted(b))

        inclusionProjDict = {
            'public': True,
            'access': True,
            'email': True,
            'login': True
        }
        inclusionProjList = ['public', 'access', 'email', 'login']
        exclusionProjDict = {
            'public': False,
            'access': False,
            'email': False,
            'login': False
        }
        overrideFields = {'access', 'public'}

        copy = dict(inclusionProjDict)
        retval = Model._overwriteFields(inclusionProjDict, overrideFields)
        assertItemsEqual(retval, inclusionProjDict)
        assertItemsEqual(inclusionProjDict, copy)
        retval = Model._overwriteFields(inclusionProjList, overrideFields)
        assertItemsEqual(retval, inclusionProjList)
        retval = Model._overwriteFields(exclusionProjDict, {'newValue'})
        assertItemsEqual(retval, exclusionProjDict)
        retval = Model._overwriteFields(inclusionProjDict, {'newValue'})
        assertItemsEqual(retval, {
            'public': True,
            'access': True,
            'email': True,
            'login': True,
            'newValue': True
        })
        retval = Model._overwriteFields(exclusionProjDict, overrideFields)
        assertItemsEqual(retval, {'email': False, 'login': False})

        doc = {
            'public': True,
            'access': True,
            'email': '[email protected]',
            'login': 'login',
            'password': 'password1',
            'admin': False,
            'firstName': 'first',
            'lastName': 'last'
        }
        Model._removeOverwrittenFields(doc, exclusionProjDict)
        assertItemsEqual(doc, {
            'password': 'password1',
            'admin': False,
            'firstName': 'first',
            'lastName': 'last'})

        doc = {
            'public': True,
            'access': True,
            'email': '[email protected]',
            'login': 'login',
            'password': 'password1',
            'admin': False,
            'firstName': 'first',
            'lastName': 'last'
        }
        Model._removeOverwrittenFields(doc, inclusionProjList)
        assertItemsEqual(doc, {
            'public': True,
            'access': True,
            'email': '[email protected]',
            'login': 'login'})

        doc = {
            'public': True,
            'access': True,
            'email': '[email protected]',
            'login': 'login',
            'password': 'password1',
            'admin': False,
            'firstName': 'first',
            'lastName': 'last'
        }
        Model._removeOverwrittenFields(doc, inclusionProjDict)
        assertItemsEqual(doc, {
            'public': True,
            'access': True,
            'email': '[email protected]',
            'login': 'login'})

        # Test None edge cases
        retval = Model._overwriteFields(None, {'access', 'public'})
        self.assertIsNone(retval)
        copy = dict(doc)
        Model._removeOverwrittenFields(doc, None)
        assertItemsEqual(copy, doc)

        # Test '_id': False inclusion edge case
        fields = {
            '_id': False,
#.........这里部分代码省略.........
开发者ID:adsorensen,项目名称:girder,代码行数:103,代码来源:model_test.py


注:本文中的girder.models.model_base.Model._overwriteFields方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。