From 8a2a0fa3e3fd7f3f7df5dea20d64d005f4521e50 Mon Sep 17 00:00:00 2001 From: "Jauhien Piatlicki (jauhien)" Date: Thu, 19 Sep 2013 00:35:45 +0200 Subject: tests/test_ebuild --- tests/test_ebuild.py | 90 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 tests/test_ebuild.py diff --git a/tests/test_ebuild.py b/tests/test_ebuild.py new file mode 100644 index 0000000..e227c97 --- /dev/null +++ b/tests/test_ebuild.py @@ -0,0 +1,90 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +""" + test_ebuild.py + ~~~~~~~~~~~~~~ + + ebuild test suite + + :copyright: (c) 2013 by Jauhien Piatlicki + :license: GPL-2, see LICENSE for more details. +""" + +import collections +import os +import unittest + +from g_sorcery.compatibility import TemporaryDirectory +from g_sorcery.g_collections import Package +from g_sorcery.ebuild import EbuildGeneratorFromFile, DefaultEbuildGenerator +from g_sorcery.package_db import PackageDB + +from tests.base import BaseTest + + +Layout = collections.namedtuple("Layout", + ["vars_before_inherit", "inherit", + "vars_after_description", "vars_after_keywords"]) + +class TestEbuildGenerator(BaseTest): + + ebuild_data = {"herd": ["testers", "crackers"], + 'maintainer': [{'email': 'test@example.com', + 'name': 'tux'}], + "longdescription": "very long description here", + "use": {"flag": {"use1": "testing use1", "use2": "testing use2"}}, + "homepage": "example.com", + "description": "testing ebuild", + "array": "(a b c d)"} + package = Package("app-test", "metadata_tester", "0.1") + + def setUp(self): + super(TestEbuildGenerator, self).setUp() + self.pkg_db = PackageDB(self.tempdir.name) + self.pkg_db.add_category("app-test") + self.pkg_db.add_package(self.package, self.ebuild_data) + + def test_ebuild_generator_from_file(self): + template = os.path.join(self.tempdir.name, "test.tmpl") + os.system("echo 'TEST_SUBST=%(array)s' > " + template) + + ebuild_g = EbuildGeneratorFromFile(self.pkg_db, template) + ebuild = ebuild_g.generate(self.package) + self.assertEqual(ebuild, ['TEST_SUBST=(a b c d)']) + + def test_default_ebuild_generator(self): + vars_before_inherit = \ + [{"name":"test_raw_value", "value":"raw_value", "raw":True}, + {"name":"test_value", "value":"value"}] + + inherit = ["g-test"] + + vars_after_description = \ + ["homepage"] + + vars_after_keywords = \ + [{"name":"array"}, + {"name":"array", "raw":True}] + + layout = Layout(vars_before_inherit, + inherit, vars_after_description, vars_after_keywords) + + ebuild_g = DefaultEbuildGenerator(self.pkg_db, layout) + ebuild = ebuild_g.generate(self.package) + self.assertEqual(ebuild, ['# automatically generated by g-sorcery', + '# please do not edit this file', '', + 'EAPI=5', '', + 'TEST_RAW_VALUE=raw_value', 'TEST_VALUE="value"', '', + 'inherit g-test', '', + 'DESCRIPTION="testing ebuild"', '', + 'HOMEPAGE="example.com"', '', + 'SLOT="0"', 'KEYWORDS="~amd64 ~x86"', '', + 'ARRAY="(a b c d)"', 'ARRAY=(a b c d)', '']) + + +def suite(): + suite = unittest.TestSuite() + suite.addTest(TestEbuildGenerator('test_ebuild_generator_from_file')) + suite.addTest(TestEbuildGenerator('test_default_ebuild_generator')) + return suite -- cgit v1.2.3-18-g5258