Пример #1
0
 def general_load_test(self):
     block_name = BlockName("user/block")
     version = BlockVersion(block_name.default_block(), 0)
     config = BiiConfig(general)
     self.assertEqual(config.parent, version)
     v1 = BlockVersion.loads("user2/depblock2(track): 3 @tag")
     v2 = BlockVersion.loads("user/depblock1(master): 3")
     self.assertEqual(config.requirements, BlockVersionTable([v1, v2]))
     self.assert_bii_equal(config.mains, [EntryPointConfiguration("main.cpp", False),
                                          EntryPointConfiguration("main2.cpp", True),
                                          ])
     self.assert_bii_equal(config.tests, ["test.cpp", "test1.cpp"])
     self.assertEqual(config.paths, ["/", "include"])
Пример #2
0
 def general_load_test(self):
     block_name = BlockName("user/block")
     version = BlockVersion(block_name.default_block(), 0)
     config = BiiConfig(general)
     self.assertEqual(config.parent, version)
     v1 = BlockVersion.loads("user2/depblock2(track): 3 @tag")
     v2 = BlockVersion.loads("user/depblock1(master): 3")
     self.assertEqual(config.requirements, BlockVersionTable([v1, v2]))
     self.assert_bii_equal(config.mains, [
         EntryPointConfiguration("main.cpp", False),
         EntryPointConfiguration("main2.cpp", True),
     ])
     self.assert_bii_equal(config.tests, ["test.cpp", "test1.cpp"])
     self.assertEqual(config.paths, ["/", "include"])
Пример #3
0
 def dumps(self, text=""):
     """ dumps the contents to a text string (with \n LF), if optional param text is passed
     it tries to maintain the comments and structure of such text
     return: text translation of self
     """
     if text:
         result = []
     else:
         result = [
             '# This file contains your block external dependencies references'
         ]
     replaced_versions = []
     for line in text.splitlines():
         line = line.strip()
         if not line or line.startswith('#'):  # Blank and comment lines
             result.append(line)
             continue
         try:
             current_version = BlockVersion.loads(line)
             version = self.get(current_version.block_name)
             if version:
                 result.append(str(version))
                 replaced_versions.append(version)
         except:
             result.append(line)
             continue
     for version in self.itervalues():
         if version not in replaced_versions:
             result.append(str(version))
     result.append('')
     return '\n'.join(result)
Пример #4
0
    def parents_line_parser(line):
        if line.startswith('*'):
            line = line[1:]

        version = BlockVersion.loads(line)
        if result:
            raise BiiException('Impossible to have two main parents')

        result.append(version)
Пример #5
0
    def test_time_base_map(self):
        t = TimeBaseMap()
        mvt = BlockVersionTable([BlockVersion.loads("user/block: 3")])
        t.append(0, mvt)
        t.append(1, mvt)

        s = serialize(t)
        #print "TIME BASE:"+str(s)
        t2 = TimeBaseMapDeserializer(BlockVersionTable).deserialize(s)
        self.assertEqual(t, t2)
def _trace_achievement_action(action_name, description, username, async_process):
    try:
        if username:
            if action_name == "publish":  # Uses publish
                register_publish(username, BlockVersion.loads(description),
                                 async_process=async_process)
            elif action_name == "get_version_delta_info":  # User uses biicode
                register_get_version_delta_info(username, async_process=async_process)
    except Exception as e:
        logger.warning("Error sending to action to achievement: %s" % e)
Пример #7
0
    def test_time_base_map(self):
        t = TimeBaseMap()
        mvt = BlockVersionTable([BlockVersion.loads("user/block: 3")])
        t.append(0, mvt)
        t.append(1, mvt)

        s = serialize(t)
        # print "TIME BASE:"+str(s)
        t2 = TimeBaseMapDeserializer(BlockVersionTable).deserialize(s)
        self.assertEqual(t, t2)
 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))
Пример #9
0
 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 setUp(self):
        self.store = MongoServerStore(self.conn, self.__class__.__name__)
        self.store = ReverseDependencyMongoStore(self.store)
        bver = BlockVersion.loads("creator/block(owner/branch):2")
        self.bv2 = BlockVersion.loads("creator2/block(owner2/branch):2")
        self.bv3 = BlockVersion.loads("creator3/block(owner3/branch):3")

        self.reverse = ReverseDependency(bver)
        self.reverse.add_dependant_version(self.bv2)
        self.reverse.add_dependant_version(self.bv3)

        self.store.upsert_reverse_dependencies(self.reverse)

        # Other version of same block
        bver2 = BlockVersion.loads("creator/block(owner/branch):3")
        self.reverse2 = ReverseDependency(bver2)
        self.reverse2.add_dependant_version(self.bv2)
        self.reverse2.add_dependant_version(self.bv3)

        self.store.upsert_reverse_dependencies(self.reverse2)
Пример #11
0
    def setUp(self):
        self.store = MongoServerStore(self.conn, self.__class__.__name__)
        self.store = ReverseDependencyMongoStore(self.store)
        bver = BlockVersion.loads("creator/block(owner/branch):2")
        self.bv2 = BlockVersion.loads("creator2/block(owner2/branch):2")
        self.bv3 = BlockVersion.loads("creator3/block(owner3/branch):3")

        self.reverse = ReverseDependency(bver)
        self.reverse.add_dependant_version(self.bv2)
        self.reverse.add_dependant_version(self.bv3)

        self.store.upsert_reverse_dependencies(self.reverse)

        # Other version of same block
        bver2 = BlockVersion.loads("creator/block(owner/branch):3")
        self.reverse2 = ReverseDependency(bver2)
        self.reverse2.add_dependant_version(self.bv2)
        self.reverse2.add_dependant_version(self.bv3)

        self.store.upsert_reverse_dependencies(self.reverse2)
Пример #12
0
 def migrate(self, *args, **kwargs):
     bii = args[0]
     disk = bii.hive_disk_image
     disk.clean()
     for root, _, _ in os.walk(disk._bii_paths.blocks):
         relative_root = root.replace(disk._bii_paths.blocks + os.sep, "")
         if len(relative_root.split(os.sep)) == 2:
             block = BlockVersion.loads(relative_root.replace(os.sep, "/")).block
             version = bii.biiapi.get_block_info(block).last_version
             if version.time > -1:
                 file_path = os.path.join(root, BII_DIR, "parents.bii")
                 save(file_path, "*%s" % version.to_pretty())
Пример #13
0
 def migrate(self, *args, **kwargs):
     bii = args[0]
     disk = bii.hive_disk_image
     disk.clean()
     for root, _, _ in os.walk(disk._bii_paths.blocks):
         relative_root = root.replace(disk._bii_paths.blocks + os.sep, '')
         if len(relative_root.split(os.sep)) == 2:
             block = BlockVersion.loads(relative_root.replace(os.sep,
                                                              '/')).block
             version = bii.biiapi.get_block_info(block).last_version
             if version.time > -1:
                 file_path = os.path.join(root, BII_DIR, 'parents.bii')
                 save(file_path, '*%s' % version.to_pretty())
def _trace_achievement_action(action_name, description, username,
                              async_process):
    try:
        if username:
            if action_name == "publish":  # Uses publish
                register_publish(username,
                                 BlockVersion.loads(description),
                                 async_process=async_process)
            elif action_name == "get_version_delta_info":  # User uses biicode
                register_get_version_delta_info(username,
                                                async_process=async_process)
    except Exception as e:
        logger.warning("Error sending to action to achievement: %s" % e)
 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_read_and_upsert_reverse_dependencies(self):

        reverse_readed = self.store.read_direct_reverse_dependencies(self.reverse.version)

        self.assertEquals(self.reverse, reverse_readed)

        # Now add directly to mongo a new dependency
        new_ver = BlockVersion.loads("creator3/block3(owner3/branch3):3")
        self.store.add_reverse_dependency_to(self.reverse.version, new_ver)

        reverse_readed = self.store.read_direct_reverse_dependencies(self.reverse.version)

        self.reverse.add_dependant_version(new_ver)
        self.assertEquals(self.reverse, reverse_readed)
Пример #17
0
 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)
Пример #18
0
    def parent_test(self):
        block_name = BlockName("user/block")
        version = BlockVersion(block_name.default_block(), 0)
        for text in (parent1, parent2):
            config = BiiConfig(text)
            self.assertEqual(config.parent, version)
            self.assertEqual(None, config.dumps())

        config = BiiConfig(parent3)
        self.assertEqual(config.parent, None)
        self.assertEqual(None, config.dumps())

        version = BlockVersion.loads("user/block(track): -1")
        config = BiiConfig(parent4)
        self.assertEqual(config.parent, version)
        self.assertEqual(None, config.dumps())
Пример #19
0
    def test_read_and_upsert_reverse_dependencies(self):

        reverse_readed = self.store.read_direct_reverse_dependencies(
            self.reverse.version)

        self.assertEquals(self.reverse, reverse_readed)

        # Now add directly to mongo a new dependency
        new_ver = BlockVersion.loads("creator3/block3(owner3/branch3):3")
        self.store.add_reverse_dependency_to(self.reverse.version, new_ver)

        reverse_readed = self.store.read_direct_reverse_dependencies(
            self.reverse.version)

        self.reverse.add_dependant_version(new_ver)
        self.assertEquals(self.reverse, reverse_readed)
Пример #20
0
    def parent_test(self):
        block_name = BlockName("user/block")
        version = BlockVersion(block_name.default_block(), 0)
        for text in (parent1, parent2):
            config = BiiConfig(text)
            self.assertEqual(config.parent, version)
            self.assertEqual(None, config.dumps())

        config = BiiConfig(parent3)
        self.assertEqual(config.parent, None)
        self.assertEqual(None, config.dumps())

        version = BlockVersion.loads("user/block(track): -1")
        config = BiiConfig(parent4)
        self.assertEqual(config.parent, version)
        self.assertEqual(None, config.dumps())
Пример #21
0
    def parent_update_test(self):
        block_name = BlockName("user/block")
        text = "[parent]\n # My comment\n"
        config = BiiConfig(text)
        self.assertEqual(config.dumps(), None)

        version = BlockVersion(block_name.default_block(), 0)
        config.parent = version
        dumped = config.dumps()
        self.assertEqual(dumped, "[parent]\n\tuser/block: 0\n")
        # Dump again, no changes
        self.assertEqual(config.dumps(), None)
        config2 = BiiConfig(dumped)
        self.assertEqual(config2.parent, config.parent)

        version2 = BlockVersion.loads("user/block(track): 2")
        config.parent = version2
        dumped = config.dumps()
        self.assertEqual(dumped, "[parent]\n\tuser/block(track): 2\n")
        # Dump again, no changes
        self.assertEqual(config.dumps(), None)
        config3 = BiiConfig(dumped)
        self.assertEqual(config3.parent, config.parent)
Пример #22
0
    def parent_update_test(self):
        block_name = BlockName("user/block")
        text = "[parent]\n # My comment\n"
        config = BiiConfig(text)
        self.assertEqual(config.dumps(), None)

        version = BlockVersion(block_name.default_block(), 0)
        config.parent = version
        dumped = config.dumps()
        self.assertEqual(dumped, "[parent]\n\tuser/block: 0\n")
        # Dump again, no changes
        self.assertEqual(config.dumps(), None)
        config2 = BiiConfig(dumped)
        self.assertEqual(config2.parent, config.parent)

        version2 = BlockVersion.loads("user/block(track): 2")
        config.parent = version2
        dumped = config.dumps()
        self.assertEqual(dumped, "[parent]\n\tuser/block(track): 2\n")
        # Dump again, no changes
        self.assertEqual(config.dumps(), None)
        config3 = BiiConfig(dumped)
        self.assertEqual(config3.parent, config.parent)
    def test_loads(self):
        v1 = BlockVersion("user/user/math/master", 3)
        self.assertEqual(v1, BlockVersion.loads('user/math: 3'))
        self.assertEqual(v1, BlockVersion.loads('user/math: 3  # This is a comment'))
        self.assertEqual(v1, BlockVersion.loads('user/math : 3'))
        self.assertEqual(v1, BlockVersion.loads(' user/math(master): 3 '))
        self.assertEqual(v1, BlockVersion.loads('user/math (master) : 3 '))
        self.assertEqual(v1, BlockVersion.loads('user/math (user/master) : 3 '))
        self.assertEqual('user/math: 3', str(v1))

        v1 = BlockVersion("user/user/math/branch", 3)
        self.assertEqual(v1, BlockVersion.loads('user/math(branch): 3'))
        self.assertEqual(v1, BlockVersion.loads('user/math (user/branch) : 3'))
        self.assertEqual('user/math(branch): 3', str(v1))

        v1 = BlockVersion("user2/user/math/branch", 3)
        self.assertEqual(v1, BlockVersion.loads('user/math (user2/branch) : 3'))
        self.assertEqual('user/math(user2/branch): 3', str(v1))

        v1 = BlockVersion("user/user/math/master", None)
        self.assertEqual(v1, BlockVersion.loads(' user/math '))
        self.assertEqual(v1, BlockVersion.loads(' user/math(master) '))
        self.assertEqual(v1, BlockVersion.loads('user/math (user/master) '))
        self.assertEqual('user/math', str(v1))

        v1 = BlockVersion("user/user/math/branch", None)
        self.assertEqual(v1, BlockVersion.loads('user/math(branch) '))
        self.assertEqual(v1, BlockVersion.loads('user/math (user/branch)'))
        self.assertEqual('user/math(branch)', str(v1))

        v1 = BlockVersion("user2/user/math/branch", None)
        self.assertEqual(v1, BlockVersion.loads('user/math (user2/branch) '))
        self.assertEqual('user/math(user2/branch)', str(v1))

        v1 = BlockVersion("user/user/math/master", 30, '2.7.1')
        self.assertEqual(v1, BlockVersion.loads('user/math : 30 @2.7.1'))
        self.assertEqual(v1, BlockVersion.loads('user/math : 30 @2.7.1# This is a comment'))
        self.assertEqual(v1, BlockVersion.loads('user/math : 30 @2.7.1  # This is a comment'))
        self.assertEqual('user/math: 30 @2.7.1', str(v1))

        v1 = BlockVersion("dummy/dummy/myblock/master", -1)
        self.assertEquals(v1, BlockVersion.loads('dummy/myblock: -1'))

        v1 = BlockVersion("dummy/dummy/my-block/master", 2)
        self.assertEquals(v1, BlockVersion.loads('dummy/my-block: 2'))

        v1 = BlockVersion("user0/user0/hello-.__--1/master", 0)
        self.assertEquals(v1, BlockVersion.loads('user0/hello-.__--1: 0'))

        with self.assertRaisesRegexp(BiiException, "Bad block version format"):
            BlockVersion.loads('laso/block:invalidversion')

        v1 = BlockVersion("dummy/dummy/first/master", None, "1.12")
        self.assertEquals(v1, BlockVersion.loads('dummy/first @1.12'))

        v1 = BlockVersion.loads("user/math: @DEV ")
        self.assertEqual(v1.block, "user/user/math/master")
        self.assertEqual(v1.time, None)
        self.assertEqual(v1.tag, "DEV")

        v1 = BlockVersion.loads("user/math: 1 @1.2   # My comment")
        self.assertEqual(v1.block, "user/user/math/master")
        self.assertEqual(v1.time, 1)
Пример #24
0
from biicode.common.model.symbolic.block_version import BlockVersion

a1 = BlockVersion.loads('user0/blocka: 1')
a2 = BlockVersion.loads('user0/blocka: 2')
an = BlockVersion.loads('user0/blocka')
b1 = BlockVersion.loads('user0/blockb: 1')
b2 = BlockVersion.loads('user0/blockb: 2')
bn = BlockVersion.loads('user0/blockb')
c1 = BlockVersion.loads('user0/blockc: 1')
cn = BlockVersion.loads('user0/blockc')
c2 = BlockVersion.loads('user0/blockc: 2')
c3 = BlockVersion.loads('user0/blockc: 3')
d1 = BlockVersion.loads('user0/blockd: 1')
dn = BlockVersion.loads('user0/blockd')
e1 = BlockVersion.loads('user0/blocke(user1/branch): 1')
en = BlockVersion.loads('user0/blocke(user1/branch)')
Пример #25
0
import unittest
from biicode.common.edition.hive_holder import HiveHolder
from biicode.common.model.symbolic.block_version import BlockVersion
from biicode.common.model.symbolic.block_version_table import BlockVersionTable
from biicode.common.model.resource import Resource
from biicode.common.model.cells import SimpleCell
from biicode.common.model.content import Content
from biicode.common.model.blob import Blob
from biicode.common.edition.block_holder import BlockHolder, BIICODE_FILE

a1 = BlockVersion.loads('user0/blocka: 1')
an = BlockVersion.loads('user0/blocka')
b2 = BlockVersion.loads('user0/blockb(branch): 2')
bn = BlockVersion.loads('user0/blockb(branch)')
cn = BlockVersion.loads('user0/blockc: -1')


class HiveHolderTest(unittest.TestCase):

    def base_version_test(self):
        hive_holder = HiveHolder({}, {})
        parents_resource = Resource(SimpleCell(a1.block_name + BIICODE_FILE),
                                    Content(id_=None, load=Blob('[parent]\n ' + str(a1))))
        hive_holder.add_holder(BlockHolder(a1.block_name, {parents_resource}))
        parents_resource = Resource(SimpleCell(b2.block_name + BIICODE_FILE),
                                    Content(id_=None, load=Blob('[parent]\n * ' + str(b2))))
        hive_holder.add_holder(BlockHolder(b2.block_name, {parents_resource}))
        hive_holder.add_holder(BlockHolder(cn.block_name, {}))
        result_table = BlockVersionTable([b.parent for b in hive_holder.block_holders])
        self.assertEqual(result_table, BlockVersionTable([a1, b2, cn]))
import unittest

from biicode.common.model.symbolic.block_version import BlockVersion
from biicode.common.deps.block_version_graph import BlockVersionGraph
from biicode.common.deps.block_version_graph_builder import \
    compute_effective, block_version_graph_build
from biicode.common.test.deps.deps_api import DepsApiFake
from biicode.common.model.symbolic.block_version_table import BlockVersionTable


a1 = BlockVersion.loads('user0/blocka: 1')
a2 = BlockVersion.loads('user0/blocka: 2')
an = BlockVersion.loads('user0/blocka')
b1 = BlockVersion.loads('user0/blockb: 1')
b2 = BlockVersion.loads('user0/blockb: 2')
bn = BlockVersion.loads('user0/blockb')
c1 = BlockVersion.loads('user0/blockc: 1')
c2 = BlockVersion.loads('user0/blockc: 1')
c3 = BlockVersion.loads('user0/blockc: 3')
cn = BlockVersion.loads('user0/blockc')
d1 = BlockVersion.loads('user0/blockd: 1')


class BlockVersionGraphBuilderTest(unittest.TestCase):

    def test_compose(self):
        t1 = BlockVersionTable([a1])
        t2 = BlockVersionTable([b1])
        effective, propagate, overwrites = compute_effective(t1, t2, 'user0/blocka')
        self.assertEqual(effective, BlockVersionTable([b1]))
        self.assertEqual(propagate, BlockVersionTable([b1]))
Пример #27
0
    def test_loads(self):
        v1 = BlockVersion("user/user/math/master", 3)
        self.assertEqual(v1, BlockVersion.loads('user/math: 3'))
        self.assertEqual(v1, BlockVersion.loads('user/math: 3  # This is a comment'))
        self.assertEqual(v1, BlockVersion.loads('user/math : 3'))
        self.assertEqual(v1, BlockVersion.loads(' user/math(master): 3 '))
        self.assertEqual(v1, BlockVersion.loads('user/math (master) : 3 '))
        self.assertEqual(v1, BlockVersion.loads('user/math (user/master) : 3 '))
        self.assertEqual('user/math: 3', str(v1))

        v1 = BlockVersion("user/user/math/branch", 3)
        self.assertEqual(v1, BlockVersion.loads('user/math(branch): 3'))
        self.assertEqual(v1, BlockVersion.loads('user/math (user/branch) : 3'))
        self.assertEqual('user/math(branch): 3', str(v1))

        v1 = BlockVersion("user2/user/math/branch", 3)
        self.assertEqual(v1, BlockVersion.loads('user/math (user2/branch) : 3'))
        self.assertEqual('user/math(user2/branch): 3', str(v1))

        v1 = BlockVersion("user/user/math/master", None)
        self.assertEqual(v1, BlockVersion.loads(' user/math '))
        self.assertEqual(v1, BlockVersion.loads(' user/math(master) '))
        self.assertEqual(v1, BlockVersion.loads('user/math (user/master) '))
        self.assertEqual('user/math', str(v1))

        v1 = BlockVersion("user/user/math/branch", None)
        self.assertEqual(v1, BlockVersion.loads('user/math(branch) '))
        self.assertEqual(v1, BlockVersion.loads('user/math (user/branch)'))
        self.assertEqual('user/math(branch)', str(v1))

        v1 = BlockVersion("user2/user/math/branch", None)
        self.assertEqual(v1, BlockVersion.loads('user/math (user2/branch) '))
        self.assertEqual('user/math(user2/branch)', str(v1))

        v1 = BlockVersion("user/user/math/master", 30, '2.7.1')
        self.assertEqual(v1, BlockVersion.loads('user/math : 30 @2.7.1'))
        self.assertEqual(v1, BlockVersion.loads('user/math : 30 @2.7.1# This is a comment'))
        self.assertEqual(v1, BlockVersion.loads('user/math : 30 @2.7.1  # This is a comment'))
        self.assertEqual('user/math: 30 @2.7.1', str(v1))

        v1 = BlockVersion("dummy/dummy/myblock/master", -1)
        self.assertEquals(v1, BlockVersion.loads('dummy/myblock: -1'))

        v1 = BlockVersion("dummy/dummy/my-block/master", 2)
        self.assertEquals(v1, BlockVersion.loads('dummy/my-block: 2'))

        v1 = BlockVersion("user0/user0/hello-.__--1/master", 0)
        self.assertEquals(v1, BlockVersion.loads('user0/hello-.__--1: 0'))

        with self.assertRaisesRegexp(BiiException, "Bad block version format"):
            BlockVersion.loads('laso/block:invalidversion')

        v1 = BlockVersion("dummy/dummy/first/master", None, "1.12")
        self.assertEquals(v1, BlockVersion.loads('dummy/first @1.12'))
Пример #28
0
def block_version(argument):
    return argument if isinstance(argument, BlockVersion) else BlockVersion.loads(argument)
Пример #29
0
import unittest
from biicode.common.edition.hive import Hive
from biicode.common.edition.hive_holder import HiveHolder
from biicode.common.model.symbolic.block_version import BlockVersion
from biicode.common.model.symbolic.block_version_table import BlockVersionTable
from biicode.common.model.resource import Resource
from biicode.common.model.cells import SimpleCell
from biicode.common.model.content import Content
from biicode.common.model.blob import Blob
from biicode.common.edition.block_holder import BlockHolder, BIICODE_FILE

a1 = BlockVersion.loads('user0/blocka: 1')
an = BlockVersion.loads('user0/blocka')
b2 = BlockVersion.loads('user0/blockb(branch): 2')
bn = BlockVersion.loads('user0/blockb(branch)')
cn = BlockVersion.loads('user0/blockc: -1')


class HiveHolderTest(unittest.TestCase):
    def base_version_test(self):
        hive = Hive()
        hive_holder = HiveHolder(hive, {}, {})
        parents_resource = Resource(
            SimpleCell(a1.block_name + BIICODE_FILE),
            Content(id_=None, load=Blob('[parent]\n ' + str(a1))))
        hive_holder.add_holder(BlockHolder(a1.block_name, {parents_resource}))
        parents_resource = Resource(
            SimpleCell(b2.block_name + BIICODE_FILE),
            Content(id_=None, load=Blob('[parent]\n * ' + str(b2))))
        hive_holder.add_holder(BlockHolder(b2.block_name, {parents_resource}))
        hive_holder.add_holder(BlockHolder(cn.block_name, {}))
Пример #30
0
 def table_line_parser(line):
     version = BlockVersion.loads(line)
     if version.block_name in result:
         raise BiiException('Duplicate dependency "%s"' %
                            version.to_pretty())
     result.add_version(version)