def test_list(self): # Setup path = os.path.join(self.tmp_dir, 'A') fp = open(path, 'w') fp.write(CONTENT) fp.close() # Test path_out = os.path.join(self.tmp_dir, 'B') packed = link.pack(path, path_out) lst = [ {'elmer':packed}, packed, 10, 'stones' ] self.assertTrue(link.is_link(lst[0]['elmer'])) self.assertTrue(link.is_link(lst[1])) unpacked = link.unpack_all(lst) self.assertEqual(unpacked[0]['elmer'], path_out) self.assertEqual(unpacked[1], path_out) self.assertEqual(unpacked[2], 10) self.assertEqual(unpacked[3], 'stones') f = open(path_out) s = f.read() f.close() self.assertEqual(s, CONTENT)
def add(self): """ Add this importer to the local inventory. """ binding = self.binding.repo_importer conf = self.details['config'] conf = link.unpack_all(conf) binding.create(self.repo_id, self.imp_id, conf) log.info('Importer %s/%s, added', self.repo_id, self.imp_id)
def merge(self, remote): """ Merge this importer configuration from the remote importer. :param remote: The remote repository. :type remote: RemoteRepository """ delta = {} for k,v in remote.details['config'].items(): if self.details['config'].get(k) != v: self.details['config'][k] = v delta[k] = v if delta: delta = link.unpack_all(delta) self.update(delta)
def test_shallow(self): # Setup path = os.path.join(self.tmp_dir, 'A') fp = open(path, 'w') fp.write(CONTENT) fp.close() # Test path_out = os.path.join(self.tmp_dir, 'B') packed = link.pack(path, path_out) d = {'elmer':packed} self.assertTrue(link.is_link(d['elmer'])) unpacked = link.unpack_all(d) self.assertEqual(unpacked['elmer'], path_out) f = open(path_out) s = f.read() f.close() self.assertEqual(s, CONTENT)