class DDFSWriteTestCase(DiscoTestCase): def setUp(self): self.ddfs = DDFS(self.disco_master_url) def test_chunk(self): from disco.core import RecordIter url = 'http://discoproject.org/media/text/chekhov.txt' self.ddfs.chunk('disco:test:chunk', [url], chunk_size=100*1024) self.assert_(0 < len(list(self.ddfs.blobs('disco:test:chunk'))) <= 4) self.assert_(list(RecordIter(['tag://disco:test:chunk'])), list(RecordIter([url], reader=None))) self.ddfs.delete('disco:test:chunk') def test_push(self): self.ddfs.push('disco:test:blobs', [(StringIO('blobdata'), 'blobdata')]) self.assert_(self.ddfs.exists('disco:test:blobs')) self.ddfs.push('tag://disco:test:blobs2', [(StringIO('blobdata'), 'blobdata')]) self.assert_(self.ddfs.exists('disco:test:blobs2')) self.ddfs.delete('disco:test:blobs') self.assert_(not self.ddfs.exists('disco:test:blobs')) self.ddfs.delete('disco:test:blobs2') self.assert_(not self.ddfs.exists('disco:test:blobs2')) def test_tag(self): self.ddfs.tag('disco:test:tag', [['urls']]) self.assert_(self.ddfs.exists('disco:test:tag')) self.ddfs.delete('disco:test:tag') self.assert_(not self.ddfs.exists('disco:test:tag')) self.ddfs.tag('tag://disco:test:tag', [['urls']]) self.assert_(self.ddfs.exists('tag://disco:test:tag')) self.ddfs.tag('disco:test:tag', [['more_urls']]) self.assertEquals(sorted(self.ddfs.get('disco:test:tag')['urls']), sorted([['urls'], ['more_urls']])) self.ddfs.delete('tag://disco:test:tag') self.assert_(not self.ddfs.exists('tag://disco:test:tag')) def test_put(self): self.ddfs.put('disco:test:tag', [['urls']]) self.assert_(self.ddfs.exists('disco:test:tag')) self.assertEquals(self.ddfs.get('disco:test:tag')['urls'], [['urls']]) self.ddfs.put('disco:test:tag', [['tags']]) self.assertEquals(self.ddfs.get('disco:test:tag')['urls'], [['tags']]) self.ddfs.delete('tag://disco:test:tag') def test_delete(self): self.ddfs.delete('disco:test:notag') def tearDown(self): self.ddfs.delete('disco:test:notag') self.ddfs.delete('disco:test:tag') self.ddfs.delete('disco:test:blobs') self.ddfs.delete('disco:test:blobs2')