From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) by finch.gentoo.org (Postfix) with ESMTP id C46FD1381F3 for ; Wed, 18 Sep 2013 22:52:08 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 9B6D9E0B34; Wed, 18 Sep 2013 22:52:06 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 0965CE0B34 for ; Wed, 18 Sep 2013 22:52:05 +0000 (UTC) Received: from hornbill.gentoo.org (hornbill.gentoo.org [94.100.119.163]) (using TLSv1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id BDF4233EBB4 for ; Wed, 18 Sep 2013 22:52:04 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by hornbill.gentoo.org (Postfix) with ESMTP id 7461BE530A for ; Wed, 18 Sep 2013 22:52:03 +0000 (UTC) From: "Jauhien Piatlicki" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Jauhien Piatlicki" Message-ID: <1379543745.8a2a0fa3e3fd7f3f7df5dea20d64d005f4521e50.jauhien@gentoo> Subject: [gentoo-commits] proj/g-sorcery:master commit in: tests/ X-VCS-Repository: proj/g-sorcery X-VCS-Files: tests/test_ebuild.py X-VCS-Directories: tests/ X-VCS-Committer: jauhien X-VCS-Committer-Name: Jauhien Piatlicki X-VCS-Revision: 8a2a0fa3e3fd7f3f7df5dea20d64d005f4521e50 X-VCS-Branch: master Date: Wed, 18 Sep 2013 22:52:03 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: 13eac1d8-c6f7-4a78-965a-0daf588f6f26 X-Archives-Hash: 9deb5cc62636d85ec9eaa0c9ee117d21 commit: 8a2a0fa3e3fd7f3f7df5dea20d64d005f4521e50 Author: Jauhien Piatlicki (jauhien) gmail com> AuthorDate: Wed Sep 18 22:35:45 2013 +0000 Commit: Jauhien Piatlicki gmail com> CommitDate: Wed Sep 18 22:35:45 2013 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/g-sorcery.git;a=commit;h=8a2a0fa3 tests/test_ebuild --- tests/test_ebuild.py | 90 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) 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