def test_use_python_tool(self): tm, am, amt = self._make_test_tm() amt.add_recipes(self.RECIPES) amt.publish(self.DESCRIPTORS) cuchillo = PD.parse('cuchillo-1.0.0') tm.ensure_tools(cuchillo) rv = tm.run_tool(PD.parse('steel-1.0.0'), ['steel_exe.py', '6'], {}) self.assertEqual(0, rv.exit_code) self.assertEqual('steel_exe.py: 16', rv.stdout.strip())
def _make_cabbage_pm(self): t = AMT(recipes=self.VEGGIES) t.publish('cabbage;1.0.0;0;0;linux;release;x86_64;ubuntu;18') t.publish('unset;1.0.0;0;0;linux;release;x86_64;ubuntu;18') pm = self._make_caca_test_pm(t.am) cabbage = PD.parse('cabbage-1.0.0') bt = BT.parse_path('linux-ubuntu-18/x86_64/release') pm.install_package(cabbage, bt, ['RUN']) pm.install_package(PD.parse('unset-1.0.0'), bt, ['RUN']) return pm, cabbage
def test_install_packages(self): pm = self._make_test_pm_with_am() packages = [ PD.parse('water-1.0.0'), PD.parse('mercury-1.2.8'), PD.parse('arsenic-1.2.9'), ] pm.install_packages(packages, self.TEST_BUILD_TARGET, ['BUILD', 'RUN']) self.assertEqual(['arsenic-1.2.9', 'mercury-1.2.8', 'water-1.0.0'], pm.list_all(include_version=True))
def test_transform_env(self): tm, am, amt = self._make_test_tm() amt.add_recipes(self.RECIPES) amt.publish(self.DESCRIPTORS) cuchillo = PD.parse('cuchillo-1.0.0') tm.ensure_tools(cuchillo) env = tm.transform_env({}, cuchillo) replacements = {tm.root_dir: '$ROOT_DIR'} env2 = copy.deepcopy(env) dict_util.replace_values(env2, replacements) self.assertEqual( { 'WOOD_ENV1': 'wood_env1', 'CUCHILLO_ENV1': 'cuchillo_env1', 'STEEL_ENV1': 'steel_env1', 'IRON_ENV1': 'iron_env1', 'CARBON_ENV1': 'carbon_env1', 'PATH': '/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:.:$ROOT_DIR/steel_1_0_0/linux-ubuntu-18/x86_64/stuff/bin:$ROOT_DIR/wood_1_0_0/linux-ubuntu-18/x86_64/stuff/bin:$ROOT_DIR/cuchillo_1_0_0/linux-ubuntu-18/x86_64/stuff/bin', 'PYTHONPATH': '$ROOT_DIR/steel_1_0_0/linux-ubuntu-18/x86_64/stuff/lib/python:$ROOT_DIR/wood_1_0_0/linux-ubuntu-18/x86_64/stuff/lib/python:$ROOT_DIR/cuchillo_1_0_0/linux-ubuntu-18/x86_64/stuff/lib/python', 'PKG_CONFIG_PATH': '$ROOT_DIR/steel_1_0_0/linux-ubuntu-18/x86_64/stuff/lib/pkgconfig:$ROOT_DIR/steel_1_0_0/linux-ubuntu-18/x86_64/stuff/share/pkgconfig:$ROOT_DIR/wood_1_0_0/linux-ubuntu-18/x86_64/stuff/lib/pkgconfig:$ROOT_DIR/wood_1_0_0/linux-ubuntu-18/x86_64/stuff/share/pkgconfig:$ROOT_DIR/cuchillo_1_0_0/linux-ubuntu-18/x86_64/stuff/lib/pkgconfig:$ROOT_DIR/cuchillo_1_0_0/linux-ubuntu-18/x86_64/stuff/share/pkgconfig', 'LD_LIBRARY_PATH': '$ROOT_DIR/steel_1_0_0/linux-ubuntu-18/x86_64/stuff/lib:$ROOT_DIR/wood_1_0_0/linux-ubuntu-18/x86_64/stuff/lib:$ROOT_DIR/cuchillo_1_0_0/linux-ubuntu-18/x86_64/stuff/lib', }, env2)
def test_use_binary_tool_shared(self): tm, am, amt = self._make_test_tm() knife = PD.parse('knife-1.0.0') tm.ensure_tools(knife) rv = tm.run_tool(knife, ['links_with_shared.exe'], {}) self.assertEqual(0, rv.exit_code) self.assertEqual('22', rv.stdout.strip())
def test_use_shell_tool(self): tm, am, amt = self._make_test_tm() knife = PD.parse('knife-1.0.0') tm.ensure_tools(knife) rv = tm.run_tool(knife, ['cut.sh', 'a', 'b', '666'], {}) self.assertEqual(0, rv.exit_code) self.assertEqual('cut.sh: a b 666', rv.stdout.strip())
def _install_package(self, pm, desc, bt): if check.is_string(desc): desc = PD.parse(desc) check.check_package_descriptor(desc) if check.is_string(bt): bt = BT.parse_path(bt) check.check_build_target(bt) pm.install_package(desc, bt, ['RUN'])
def _make_two_env_files_pm(self, code1, code2): recipe = self.TWO_ENV_FILES_RECIPE % (code1, code2) t = AMT(recipes=recipe) t.publish('two_env_files;1.0.0;0;0;linux;release;x86_64;ubuntu;18') pm = self._make_caca_test_pm(t.am) pdesc = PD.parse('two_env_files-1.0.0') bt = BT.parse_path('linux-ubuntu-18/x86_64/release') pm.install_package(pdesc, bt, ['RUN']) return pm
def test_dep_map(self): pm = self._make_test_pm_with_am() packages = [ PD.parse('water-1.0.0'), PD.parse('fiber-1.0.0'), PD.parse('fructose-3.4.5-6'), PD.parse('fruit-1.0.0'), PD.parse('apple-1.2.3-1'), ] pm.install_packages(packages, self.TEST_BUILD_TARGET, ['RUN']) self.assertEqual([ 'apple-1.2.3-1', 'fiber-1.0.0', 'fructose-3.4.5-6', 'fruit-1.0.0', 'water-1.0.0' ], pm.list_all(include_version=True)) self.assertEqual( { 'apple': set(['fruit']), 'fiber': set([]), 'fructose': set([]), 'fruit': set(['fiber', 'fructose', 'water']), 'water': set([]), }, pm.dep_map())
def test_ensure_tool(self): tm, am, amt = self._make_test_tm() knife_desc = PD.parse('knife-6.6.6') tm.ensure_tools(knife_desc) self.assertEqual([ 'knife_6_6_6/linux-ubuntu-18/x86_64/db/packages.db', 'knife_6_6_6/linux-ubuntu-18/x86_64/env/framework/env/bes_framework.sh', 'knife_6_6_6/linux-ubuntu-18/x86_64/env/knife_env.sh', 'knife_6_6_6/linux-ubuntu-18/x86_64/run.sh', 'knife_6_6_6/linux-ubuntu-18/x86_64/setup.sh', 'knife_6_6_6/linux-ubuntu-18/x86_64/stuff/bin/cut.exe', 'knife_6_6_6/linux-ubuntu-18/x86_64/stuff/bin/cut.sh', 'knife_6_6_6/linux-ubuntu-18/x86_64/stuff/bin/links_with_shared.exe', 'knife_6_6_6/linux-ubuntu-18/x86_64/stuff/bin/links_with_static.exe', 'knife_6_6_6/linux-ubuntu-18/x86_64/stuff/include/libfoo_shared.h', 'knife_6_6_6/linux-ubuntu-18/x86_64/stuff/include/libfoo_static.h', 'knife_6_6_6/linux-ubuntu-18/x86_64/stuff/lib/libfoo_shared.so', 'knife_6_6_6/linux-ubuntu-18/x86_64/stuff/lib/libfoo_static.a', 'knife_6_6_6/run.sh', 'knife_6_6_6/setup.sh', ], file_find.find(tm.root_dir))
def test_tool_installed_files(self): tm, am, amt = self._make_test_tm() amt.add_recipes(self.RECIPES) amt.publish(self.DESCRIPTORS) cuchillo = PD.parse('cuchillo-1.0.0') tm.ensure_tools(cuchillo) self.assertEqual([ 'cuchillo_1_0_0/linux-ubuntu-18/x86_64/db/packages.db', 'cuchillo_1_0_0/linux-ubuntu-18/x86_64/env/cuchillo_env.sh', 'cuchillo_1_0_0/linux-ubuntu-18/x86_64/env/framework/env/bes_framework.sh', 'cuchillo_1_0_0/linux-ubuntu-18/x86_64/run.sh', 'cuchillo_1_0_0/linux-ubuntu-18/x86_64/setup.sh', 'cuchillo_1_0_0/linux-ubuntu-18/x86_64/stuff/bin/cuchillo.py', 'cuchillo_1_0_0/run.sh', 'cuchillo_1_0_0/setup.sh', 'steel_1_0_0/linux-ubuntu-18/x86_64/db/packages.db', 'steel_1_0_0/linux-ubuntu-18/x86_64/env/carbon_env.sh', 'steel_1_0_0/linux-ubuntu-18/x86_64/env/framework/env/bes_framework.sh', 'steel_1_0_0/linux-ubuntu-18/x86_64/env/iron_env.sh', 'steel_1_0_0/linux-ubuntu-18/x86_64/env/steel_env.sh', 'steel_1_0_0/linux-ubuntu-18/x86_64/run.sh', 'steel_1_0_0/linux-ubuntu-18/x86_64/setup.sh', 'steel_1_0_0/linux-ubuntu-18/x86_64/stuff/bin/carbon.py', 'steel_1_0_0/linux-ubuntu-18/x86_64/stuff/bin/iron.py', 'steel_1_0_0/linux-ubuntu-18/x86_64/stuff/bin/steel_exe.py', 'steel_1_0_0/linux-ubuntu-18/x86_64/stuff/lib/python/easy-install.pth', 'steel_1_0_0/linux-ubuntu-18/x86_64/stuff/lib/python/site.py', 'steel_1_0_0/linux-ubuntu-18/x86_64/stuff/lib/python/steel.py', 'steel_1_0_0/run.sh', 'steel_1_0_0/setup.sh', 'wood_1_0_0/linux-ubuntu-18/x86_64/db/packages.db', 'wood_1_0_0/linux-ubuntu-18/x86_64/env/framework/env/bes_framework.sh', 'wood_1_0_0/linux-ubuntu-18/x86_64/env/wood_env.sh', 'wood_1_0_0/linux-ubuntu-18/x86_64/run.sh', 'wood_1_0_0/linux-ubuntu-18/x86_64/setup.sh', 'wood_1_0_0/linux-ubuntu-18/x86_64/stuff/bin/wood.py', 'wood_1_0_0/run.sh', 'wood_1_0_0/setup.sh', ], file_find.find(tm.root_dir))
def test_db_add(self): tmp_db = self._make_tmp_db_path() db = DB(tmp_db) self.assertFalse(db.has_package('foo')) files = package_files(FCL([('f1', 'c1'), ('f2', 'c2')]), FCL([('e1', 'ec1'), ('e2', 'ec2')]), 'f_chk', 'ef_chk') reqs = None new_entry = PE('foo', '1.2.3', 1, 0, [], {}, files) db.add_package(new_entry) self.assertTrue(db.has_package('foo')) self.assertEqual(['foo'], db.list_all()) self.assertEqual(['foo-1.2.3-1'], db.list_all(include_version=True)) self.assertEqual([PD.parse('foo-1.2.3-1')], db.descriptors()) self.assertEqual(PE('foo', '1.2.3', 1, 0, [], {}, files), db.find_package('foo')) del db recreated_db = DB(tmp_db) self.assertTrue(recreated_db.has_package('foo')) self.assertEqual(['foo'], recreated_db.list_all()) actual_package = recreated_db.find_package('foo') expected_package = PE('foo', '1.2.3', 1, 0, [], {}, files) self.assertEqual(expected_package, actual_package)