def test_put_node_ok(self): # write it node_id = "dinw78cdync8" ds = DiskStorage(self.tmpdir) data = 'test content to write' consumer = ds.put(node_id) consumer.write(data) consumer.unregisterProducer() # check the file path = ds._get_treepath(node_id) with open(os.path.join(path, node_id), 'rb') as fh: written = fh.read() self.assertEqual(written, data)
def test_get_node_ok(self): # write a fake file node_id = "dinw78cdync8" path = DiskStorage(self.tmpdir)._get_treepath(node_id) os.makedirs(path) data = 'test content' with open(os.path.join(path, node_id), 'wb') as fh: fh.write(data) # get it ds = DiskStorage(self.tmpdir) producer = ds.get(node_id) consumer = StringIO.StringIO() yield producer.startProducing(consumer) self.assertEqual(consumer.getvalue(), data)
def test_put_node_resumed(self): # write some node_id = "dinw78cdync8" ds = DiskStorage(self.tmpdir) data1 = b'test content to write part 1' consumer = ds.put(node_id) consumer.write(data1) consumer.unregisterProducer() # write more data2 = b' and part 2' consumer = ds.put(node_id, len(data1)) consumer.write(data2) consumer.unregisterProducer() # check the file path = ds._get_treepath(node_id) with open(os.path.join(path, node_id), 'rb') as fh: written = fh.read() self.assertEqual(written, data1 + data2)
def test_put_node_twice_similar_name(self): node_id_1 = "abcJJJJJJJJJ" node_id_2 = "abcYYYYYYYYY" ds = DiskStorage(self.tmpdir) ds.put(node_id_1) ds.put(node_id_2)