class DDFSAttrTestCase(DiscoTestCase): def setUp(self): self.ddfs = DDFS(self.disco_master_url) self.ddfs.push('disco:test:attrs', [(StringIO('datablob'), 'blobdata')]) self.ddfs.setattr('disco:test:attrs', 'a1', 'v1') self.ddfs.setattr('disco:test:attrs', 'a2', 'v2') def test_setattr(self): self.assertEquals(self.ddfs.getattr('disco:test:attrs', 'a1'), 'v1') self.assertEquals(self.ddfs.getattr('disco:test:attrs', 'a2'), 'v2') def test_attrs(self): self.assertEquals(self.ddfs.attrs('disco:test:attrs'), {'a1':'v1', 'a2':'v2'}) def test_delattr(self): self.ddfs.setattr('disco:test:attrs', 'a3', 'v3') self.assertEquals(self.ddfs.getattr('disco:test:attrs', 'a1'), 'v1') self.assertEquals(self.ddfs.getattr('disco:test:attrs', 'a2'), 'v2') self.assertEquals(self.ddfs.getattr('disco:test:attrs', 'a3'), 'v3') self.assertEquals(self.ddfs.attrs('disco:test:attrs'), {'a1':'v1', 'a2':'v2', 'a3':'v3'}) self.ddfs.delattr('disco:test:attrs', 'a3') self.assertEquals(self.ddfs.getattr('disco:test:attrs', 'a1'), 'v1') self.assertEquals(self.ddfs.getattr('disco:test:attrs', 'a2'), 'v2') self.assertEquals(self.ddfs.attrs('disco:test:attrs'), {'a1':'v1', 'a2':'v2'}) def test_delattr_unknown(self): self.ddfs.delattr('disco:test:attrs', 'z') def test_resetattr(self): self.assertEquals(self.ddfs.getattr('disco:test:attrs', 'a1'), 'v1') self.ddfs.setattr('disco:test:attrs', 'a1', 'v1.2') self.assertEquals(self.ddfs.getattr('disco:test:attrs', 'a1'), 'v1.2') self.ddfs.setattr('disco:test:attrs', 'a1', 'v1') self.assertEquals(self.ddfs.getattr('disco:test:attrs', 'a1'), 'v1') def test_reserved_attrs(self): setter = lambda: self.ddfs.setattr('disco:test:attrs', 'ddfs:a1', 'v') self.assertCommErrorCode(404, setter) def tearDown(self): self.ddfs.delete('disco:test:attrs')