示例#1
0
    def test_remove_multiple(self):
        xml = """\
<sharing>
    <role id='CopyEditor'
          title='Can copyedit'
          permission='Delegate edit copy' />
    <role id='DoerOfStuff'
          title='Can do stuff'
          permission='Delegate doing stuff' />
</sharing>
"""
        context = DummyImportContext(self.sm, purge=False)
        context._files = {'sharing.xml': xml}
        import_sharing(context)

        xml = """\
<sharing>
    <role id='Hacker'
          title='Can hack'
          permission='Hack the system' />
    <role remove="True"
          id='CopyEditor'
          title='Can copyedit'
          permission='Delegate edit copy' />
</sharing>
"""
        context = DummyImportContext(self.sm, purge=False)
        context._files = {'sharing.xml': xml}

        import_sharing(context)
        roles = self.roles()

        self.assertEquals(2, len(roles))
        self.assertEquals('Can do stuff', roles['DoerOfStuff'].title)
        self.assertEquals('Can hack', roles['Hacker'].title)
示例#2
0
    def test_import_multiple_no_purge(self):

        xml = """\
<sharing>
    <role id='CopyEditor'
          title='Can copyedit'
          permission='Delegate edit copy'
          interface='zope.interface.Interface' />
    <role id='Controller'
          title='Can control' />
</sharing>
"""
        context = DummyImportContext(self.site, purge=False)
        context._files = {'sharing.xml': xml}

        import_sharing(context)
        roles = self.roles()

        self.assertEquals(2, len(roles))
        self.assertEquals('Can copyedit', roles['CopyEditor'].title)
        self.assertEquals('Delegate edit copy',
                          roles['CopyEditor'].required_permission)
        self.assertEquals(Interface, roles['CopyEditor'].required_interface)
        self.assertEquals('Can control', roles['Controller'].title)
        self.assertEquals(None, roles['Controller'].required_permission)
示例#3
0
    def test_import_override_global(self):

        provideUtility(PersistentSharingPageRole("Do stuff", "A permission"),
                       ISharingPageRole,
                       name="DoerOfStuff")

        xml = """\
<sharing>
    <role id='CopyEditor'
          title='Can copyedit'
          permission='Delegate edit copy' />
    <role id='DoerOfStuff'
          title='Can do stuff'
          permission='Delegate doing stuff' />
</sharing>
"""
        context = DummyImportContext(self.site, purge=False)
        context._files = {'sharing.xml': xml}

        import_sharing(context)
        roles = self.roles()

        self.assertEquals(2, len(roles))
        self.assertEquals('Can copyedit', roles['CopyEditor'].title)
        self.assertEquals('Delegate edit copy',
                          roles['CopyEditor'].required_permission)
        self.assertEquals(None, roles['CopyEditor'].required_interface)
        self.assertEquals('Can do stuff', roles['DoerOfStuff'].title)
        self.assertEquals('Delegate doing stuff',
                          roles['DoerOfStuff'].required_permission)
示例#4
0
    def test_remove_one(self):

        xml = """\
<sharing>
    <role id='CopyEditor'
          title='Can copyedit'
          permission='Delegate edit copy' />
</sharing>
"""
        context = DummyImportContext(self.sm, purge=False)
        context._files = {'sharing.xml': xml}

        import_sharing(context)
        roles = self.roles()

        self.assertEquals(1, len(roles))
        self.assertEquals('Can copyedit', roles['CopyEditor'].title)

        xml = """\
<sharing>
    <role remove="True"
          id='CopyEditor' />
</sharing>
"""
        context = DummyImportContext(self.sm, purge=False)
        context._files = {'sharing.xml': xml}

        import_sharing(context)
        roles = self.roles()

        self.assertEquals(0, len(roles))
    def test_remove_multiple(self):
        xml = """\
<sharing>
    <role id='CopyEditor'
          title='Can copyedit'
          permission='Delegate edit copy' />
    <role id='DoerOfStuff'
          title='Can do stuff'
          permission='Delegate doing stuff' />
</sharing>
"""
        context = DummyImportContext(self.sm, purge=False)
        context._files = {'sharing.xml': xml}
        import_sharing(context)

        xml = """\
<sharing>
    <role id='Hacker'
          title='Can hack'
          permission='Hack the system' />
    <role remove="True"
          id='CopyEditor'
          title='Can copyedit'
          permission='Delegate edit copy' />
</sharing>
"""
        context = DummyImportContext(self.sm, purge=False)
        context._files = {'sharing.xml': xml}

        import_sharing(context)
        roles = self.roles()

        self.assertEqual(2, len(roles))
        self.assertEqual('Can do stuff', roles['DoerOfStuff'].title)
        self.assertEqual('Can hack', roles['Hacker'].title)
    def test_remove_one(self):

        xml = """\
<sharing>
    <role id='CopyEditor'
          title='Can copyedit'
          permission='Delegate edit copy' />
</sharing>
"""
        context = DummyImportContext(self.sm, purge=False)
        context._files = {'sharing.xml': xml}

        import_sharing(context)
        roles = self.roles()

        self.assertEqual(1, len(roles))
        self.assertEqual('Can copyedit', roles['CopyEditor'].title)

        xml = """\
<sharing>
    <role remove="True"
          id='CopyEditor' />
</sharing>
"""
        context = DummyImportContext(self.sm, purge=False)
        context._files = {'sharing.xml': xml}

        import_sharing(context)
        roles = self.roles()

        self.assertEqual(0, len(roles))
    def test_import_override_global(self):

        provideUtility(PersistentSharingPageRole("Do stuff", "A permission"), ISharingPageRole, name="DoerOfStuff")

        xml = """\
<sharing>
    <role id='CopyEditor'
          title='Can copyedit'
          permission='Delegate edit copy' />
    <role id='DoerOfStuff'
          title='Can do stuff'
          permission='Delegate doing stuff' />
</sharing>
"""
        context = DummyImportContext(self.site, purge=False)
        context._files = {'sharing.xml': xml}

        import_sharing(context)
        roles = self.roles()

        self.assertEqual(2, len(roles))
        self.assertEqual('Can copyedit', roles['CopyEditor'].title)
        self.assertEqual('Delegate edit copy', roles['CopyEditor'].required_permission)
        self.assertEqual(None, roles['CopyEditor'].required_interface)
        self.assertEqual('Can do stuff', roles['DoerOfStuff'].title)
        self.assertEqual('Delegate doing stuff', roles['DoerOfStuff'].required_permission)
    def test_import_multiple_times_no_purge(self):

        xml = """\
<sharing>
    <role id='CopyEditor' title='Can copyedit' permission='Delegate edit copy'/>
</sharing>
"""
        context = DummyImportContext(self.site, purge=False)
        context._files = {'sharing.xml': xml}

        import_sharing(context)
        roles = self.roles()

        self.assertEquals(1, len(roles))
        self.assertEquals('Can copyedit', roles['CopyEditor'].title)
        self.assertEquals('Delegate edit copy', roles['CopyEditor'].required_permission)

        xml = """\
<sharing>
    <role id='Controller' title='Can control' />
</sharing>
"""
        context = DummyImportContext(self.site, purge=False)
        context._files = {'sharing.xml': xml}

        import_sharing(context)
        roles = self.roles()

        self.assertEquals(2, len(roles))
        self.assertEquals('Can copyedit', roles['CopyEditor'].title)
        self.assertEquals('Delegate edit copy', roles['CopyEditor'].required_permission)
        self.assertEquals('Can control', roles['Controller'].title)
        self.assertEquals(None, roles['Controller'].required_permission)
    def test_export_multiple(self):
        sm = self.site.getSiteManager()

        # Will not be exported, as it's global
        provideUtility(PersistentSharingPageRole("Do stuff", "A permission"), ISharingPageRole, name="DoerOfStuff")

        # Will not be exported, as it wasn't imported with this handler
        sm.registerUtility(PersistentSharingPageRole("Do other Stuff"), ISharingPageRole, "DoerOfOtherStuff")

        import_xml = """\
<sharing>
    <role id='CopyEditor' title='Can copyedit' permission='Delegate edit copy'/>
    <role id='Controller' title='Can control' />
</sharing>
"""

        export_xml = """\
<?xml version="1.0"?>
<sharing>
 <role title="Can control" id="Controller"/>
 <role title="Can copyedit" id="CopyEditor" permission="Delegate edit copy"/>
</sharing>
"""

        import_context = DummyImportContext(self.site, purge=False)
        import_context._files = {'sharing.xml': import_xml}

        import_sharing(import_context)

        export_context = DummyExportContext(self.site)
        export_sharing(export_context)

        self.assertEquals('sharing.xml', export_context._wrote[0][0])
        self.assertEquals(export_xml, export_context._wrote[0][1])
示例#10
0
    def test_empty_import_no_purge(self):

        xml = "<sharing />"
        context = DummyImportContext(self.site, purge=False)
        context._files = {'sharing.xml': xml}

        import_sharing(context)

        self.assertEquals(0, len(self.roles()))
    def test_empty_import_no_purge(self):

        xml = "<sharing />"
        context = DummyImportContext(self.site, purge=False)
        context._files = {'sharing.xml': xml}

        import_sharing(context)

        self.assertEqual(0, len(self.roles()))
    def test_import_single_no_purge(self):

        xml = """\
<sharing>
    <role id='CopyEditor'
          title='Can copyedit'
          permission='Delegate edit copy'
          interface='zope.interface.Interface' />
</sharing>
"""
        context = DummyImportContext(self.site, purge=False)
        context._files = {'sharing.xml': xml}

        import_sharing(context)
        roles = self.roles()

        self.assertEqual(1, len(roles))

        self.assertEqual('Can copyedit', roles['CopyEditor'].title)
        self.assertEqual('Delegate edit copy', roles['CopyEditor'].required_permission)
        self.assertEqual(Interface, roles['CopyEditor'].required_interface)
示例#13
0
    def test_export_multiple(self):
        sm = self.site.getSiteManager()

        # Will not be exported, as it's global
        provideUtility(PersistentSharingPageRole("Do stuff", "A permission"),
                       ISharingPageRole,
                       name="DoerOfStuff")

        # Will not be exported, as it wasn't imported with this handler
        sm.registerUtility(PersistentSharingPageRole("Do other Stuff"),
                           ISharingPageRole, "DoerOfOtherStuff")

        import_xml = """\
<sharing>
 <role title="Can control" id="Controller"/>
 <role title="Can copyedit" id="CopyEditor"
    interface="zope.interface.Interface" permission="Delegate edit copy"/>
</sharing>
"""

        export_xml = """\
<?xml version="1.0"?>
<sharing>
 <role title="Can control" id="Controller"/>
 <role title="Can copyedit" id="CopyEditor"
    interface="zope.interface.Interface" permission="Delegate edit copy"/>
</sharing>
"""

        import_context = DummyImportContext(self.site, purge=False)
        import_context._files = {'sharing.xml': import_xml}

        import_sharing(import_context)

        export_context = DummyExportContext(self.site)
        export_sharing(export_context)

        self.assertEquals('sharing.xml', export_context._wrote[0][0])

        self.assertEquals(export_xml, export_context._wrote[0][1])