class Builder(unittest.TestCase):

    def setUp(self):
        self.builder = RightsBuilder()
    
    def test_empty(self):
        """If no identities have been added then the result of all_identities should be an empty set"""
        self.assertEqual(set([]), self.builder.all_identities)
        
    def test_addowner(self):
        """If we add one owner then they should have access to all privleges"""
        self.builder.addOwner('johnny')
        rights = self.builder.build()
        ctext = rights.ctext[0]
        self.assertTrue(ctext.display)
        self.assertTrue(ctext.discover)
        self.assertTrue(ctext.modify)
        self.assertTrue(ctext.delete)

    def test_addreader(self):
        """If we add one reader then they should be the only identiry in the set of all_identities"""
        self.builder.addReader('johnny')
        self.assertEqual(set(['johnny']), self.builder.all_identities)

    def test_add_users_and_build(self):
        self.builder.addReader('*****@*****.**').addReader('BROWN:GROUP')
        self.builder.addReader('*****@*****.**')
        self.builder.addReader('*****@*****.**')
        self.builder.addEditor('*****@*****.**')
        self.builder.addReader('*****@*****.**').addDiscoverer('*****@*****.**')
        rights = self.builder.build()
        rights_str = rights.serialize(pretty=True)
        self.assertTrue(JACK_RIGHTS.encode('utf8') in rights_str)
        self.assertTrue(JOHNNY_RIGHTS.encode('utf8') in rights_str)
        self.assertTrue(JIM_RIGHTS.encode('utf8') in rights_str)
        self.assertTrue(BROWN_GROUP_RIGHTS.encode('utf8') in rights_str)
        
    def test_add_users_and_build_hydra(self):
        self.builder.addReader('*****@*****.**').addReader('BROWN:GROUP')
        self.builder.addReader('*****@*****.**')
        self.builder.addEditor('*****@*****.**')
        self.builder.addReader('*****@*****.**').addDiscoverer('*****@*****.**')
        rights = self.builder.build_hydra()
        rights_str = rights.serialize(pretty=True)
        hydra_rights = load_xmlobject_from_string(rights_str, HydraRights)
        self.assertEqual(hydra_rights.discover_access_group, [])
        self.assertEqual(hydra_rights.discover_access_person, ['*****@*****.**'])
        self.assertEqual(hydra_rights.read_access_group, ['BROWN:GROUP'])
        self.assertEqual(sorted(hydra_rights.read_access_person), ['*****@*****.**', '*****@*****.**'])
        self.assertEqual(hydra_rights.edit_access_group, [])
        self.assertEqual(hydra_rights.edit_access_person, ['*****@*****.**'])
        self.assertEqual(hydra_rights.delete_access_group, [])
        self.assertEqual(hydra_rights.delete_access_person, [])

    def test_getting_builder_back_from_bdr_rights(self):
        self.builder.addReader('*****@*****.**').addReader('BROWN:GROUP')
        self.builder.addReader('*****@*****.**')
        self.builder.addEditor('*****@*****.**')
        self.builder.addReader('*****@*****.**').addDiscoverer('*****@*****.**')
        rights = self.builder.build()
        new_builder = rights.get_builder()
        self.assertEqual(new_builder, self.builder)

    def test_getting_builder_back_from_hydra_rights(self):
        self.builder.addReader('*****@*****.**').addReader('BROWN:GROUP')
        self.builder.addReader('*****@*****.**')
        self.builder.addEditor('*****@*****.**')
        self.builder.addReader('*****@*****.**').addDiscoverer('*****@*****.**')
        rights = self.builder.build_hydra()
        new_builder = rights.get_builder()
        self.assertEqual(new_builder, self.builder)
 def setUp(self):
     self.builder = RightsBuilder()
Example #3
0
class Builder(unittest.TestCase):
    """Test for the rights builder"""
    def setUp(self):
        self.builder = RightsBuilder()
    
    def test_empty_bdrBuild(self):
        """If nothing has been added to the builder then the builder should serialize to the same as EMPTY_RIGHTS_XML"""
        rights = self.builder.build()
        rights_str = rights.serialize()
        self.assertEqual(rights_str, EMPTY_RIGHTS_XML)

    def test_empty_hydraBuild(self):
        """If nothing has been added to the builder then the builder should serialize to the same as EMPTY_RIGHTS_XML"""
        rights = self.builder.build_hydra()
        rights_str = rights.serialize()
        self.assertEqual(rights_str, EMPTY_HYDRA_RIGHTS_XML)

    def test_empty(self):
        """If no identities have been added then the result of all_identities should be an empty set"""
        self.assertEqual(set([]), self.builder.all_identities)
        
    def test_addowner(self):
        """If we add one owner then they should have access to all privleges"""
        self.builder.addOwner('johnny')
        rights = self.builder.build()
        ctext = rights.ctext[0]
        self.assertTrue(ctext.display)
        self.assertTrue(ctext.discover)
        self.assertTrue(ctext.modify)
        self.assertTrue(ctext.delete)

    def test_addreader(self):
        """If we add one reader then they should be the only identiry in the set of all_identities"""
        self.builder.addReader('johnny')
        self.assertEqual(set(['johnny']), self.builder.all_identities)

    def test_add_users_and_build(self):
        self.builder.addReader('*****@*****.**').addReader('BROWN:GROUP')
        self.builder.addReader('*****@*****.**')
        self.builder.addReader('*****@*****.**')
        self.builder.addEditor('*****@*****.**')
        self.builder.addReader('*****@*****.**').addDiscoverer('*****@*****.**')
        rights = self.builder.build()
        rights_str = rights.serialize(pretty=True)
        self.assertEqual(rights_str, RIGHTS_WITH_USERS)
        
    def test_add_users_and_build_hydra(self):
        self.builder.addReader('*****@*****.**').addReader('BROWN:GROUP')
        self.builder.addReader('*****@*****.**')
        self.builder.addEditor('*****@*****.**')
        self.builder.addReader('*****@*****.**').addDiscoverer('*****@*****.**')
        rights = self.builder.build_hydra()
        rights_str = rights.serialize(pretty=True)
        self.assertEqual(rights_str, HYDRA_RIGHTS_WITH_USERS)

    
    def test_getting_builder_back_from_bdr_rights(self):
        self.builder.addReader('*****@*****.**').addReader('BROWN:GROUP')
        self.builder.addReader('*****@*****.**')
        self.builder.addEditor('*****@*****.**')
        self.builder.addReader('*****@*****.**').addDiscoverer('*****@*****.**')
        rights = self.builder.build()
        new_builder = rights.get_builder()
        self.assertEqual(new_builder, self.builder)

    def test_getting_builder_back_from_hydra_rights(self):
        self.builder.addReader('*****@*****.**').addReader('BROWN:GROUP')
        self.builder.addReader('*****@*****.**')
        self.builder.addEditor('*****@*****.**')
        self.builder.addReader('*****@*****.**').addDiscoverer('*****@*****.**')
        rights = self.builder.build_hydra()
        new_builder = rights.get_builder()
        self.assertEqual(new_builder, self.builder)