def test_nonzero_one_file_content(self): changes = Changes() changes.modified['modified_cont'] = Modification( Resource(SimpleCell('usr/block/pretty.js'), Content(id_=None, load=Blob('mod_content'))), Resource(SimpleCell('usr/block/pretty.js'), Content(id_=None, load=Blob('mod_content2')))) p = PublishRequest(BlockVersion.loads('usr/block: 3')) p.msg = "Test Msg" p.changes = changes self.assertTrue(bool(p))
def test_serialize(self): p = PublishRequest(BlockVersion.loads('usr/block: 3')) p.msg = "Test Msg" p.changes = self._changes() serial = p.serialize() p2 = PublishRequest.deserialize(serial) self.assertEqual(p.parent, p2.parent) self.assertEqual(p.tag, p2.tag) self.assertEqual(p.msg, p2.msg) self.assert_bii_equal(p.cells, p2.cells) self.assertEqual(p.contents, p2.contents) self.assertEqual(p.contents_ids, p2.contents_ids) self.assertEqual(p.deleted, p2.deleted) self.assertEqual(p.renames, p2.renames)
def test_set_changes(self): p = PublishRequest() changes = self._changes() p.changes = changes self.assertTrue(bool(p)) self.assertItemsEqual(['deleted', 'renamed'], p.deleted) self.assertEqual(changes.renames, p.renames) self.assertEqual({SimpleCell('usr/block/created'), SimpleCell('usr/block/renamed2'), SimpleCell('usr/block/modified_cell', CPP), SimpleCell('usr/block/modified_both', CPP)}, set(p.cells)) self.assertEqual({'created': Content(id_=None, load=Blob('created')), 'modified_cont': Content(id_=None, load=Blob('mod_content2')), 'modified_both': Content(id_=None, load=Blob('mod_both2'))}, p.contents) self.assertEqual({'renamed2': ID((1234,))}, p.contents_ids)
def build_publish_request(biiapi, hive_holder, block_name, tag, msg, versiontag, origin, biiout): block_name, dep_block_names = _check_input(hive_holder, block_name) _check_dep_blocks(biiapi, hive_holder, dep_block_names, biiout) block_holder = hive_holder[block_name] if not changevalidator.check_block_size(block_holder, biiout): raise PublishException("Block is too large to be published") parent = block_holder.parent _check_possible(parent, biiapi, biiout) if parent.time != -1: # Update remote_block_holder = biiapi.get_block_holder(parent) base_resources = remote_block_holder.resources parent_delta_info = biiapi.get_version_delta_info(parent) else: # New block base_resources = None parent_delta_info = None remote_block_holder = None changes = compare(base_resources, block_holder.resources) if not block_changed(changes, block_holder, remote_block_holder): if parent_delta_info and tag > parent_delta_info.tag: biiout.info('No changes, promoting tag %s -> %s' % (parent_delta_info.tag, tag)) changes.modified.pop(BIICODE_FILE, None) else: raise UpToDatePublishException("Up to date, nothing to publish") changes.deduce_renames() request = PublishRequest() request.parent = parent request.changes = changes if parent_delta_info: request.parent_time = parent_delta_info.date assert all(bv.time is not None for bv in block_holder.requirements.itervalues()) request.deptable = block_holder.requirements request.tag = tag request.msg = msg request.versiontag = versiontag request.origin = origin return request
def test_set_changes(self): p = PublishRequest() changes = self._changes() p.changes = changes self.assertTrue(bool(p)) self.assertItemsEqual(['deleted', 'renamed'], p.deleted) self.assertEqual(changes.renames, p.renames) self.assertEqual( { SimpleCell('usr/block/created'), SimpleCell('usr/block/renamed2'), SimpleCell('usr/block/modified_cell', CPP), SimpleCell('usr/block/modified_both', CPP) }, set(p.cells)) self.assertEqual( { 'created': Content(id_=None, load=Blob('created')), 'modified_cont': Content(id_=None, load=Blob('mod_content2')), 'modified_both': Content(id_=None, load=Blob('mod_both2')) }, p.contents) self.assertEqual({'renamed2': ID((1234, ))}, p.contents_ids)