diff options
Diffstat (limited to 'tests/test_metadata.py')
-rw-r--r-- | tests/test_metadata.py | 134 |
1 files changed, 0 insertions, 134 deletions
diff --git a/tests/test_metadata.py b/tests/test_metadata.py deleted file mode 100644 index 288d8b1..0000000 --- a/tests/test_metadata.py +++ /dev/null @@ -1,134 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -""" - test_metadata.py - ~~~~~~~~~~~~~~~~ - - metadata generator test suite - - :copyright: (c) 2013 by Jauhien Piatlicki - :license: GPL-2, see LICENSE for more details. -""" - -import xml.etree.ElementTree as ET - -import tempfile, unittest - -from g_sorcery import exceptions, metadata, package_db - -from tests.base import BaseTest - -def tostring(element): - return ET.tostring(element, encoding='utf-8').decode('utf-8') - -class TestXMLGenerator(BaseTest): - - def test_generate(self): - schema = [{'name' : 'desc', - 'subtags' : [], - 'multiple' : (False, ""), - 'required' : True}, - {'name' : 'contact', - 'multiple' : (False, ""), - 'required' : False, - 'subtags' : [ - {'name' : 'email', - 'subtags' : [], - 'multiple' : (False, ""), - 'required' : True}, - - {'name' : 'phone', - 'subtags' : [], - 'multiple' : (False, ""), - 'required' : False}, - ]}, - {'name' : 'multiple', - 'subtags' : [], - 'multiple' : (True, ""), - 'required' : False}, - {'name' : 'flag', - 'subtags' : [], - 'multiple' : (True, "name"), - 'required' : False}, - ] - xg = metadata.XMLGenerator('test_ext', schema) - self.assertRaises(exceptions.XMLGeneratorError, xg.generate, {}) - tree = xg.generate({'desc' : 'test xml'}) - self.assertEqual(tostring(tree), - '<test_ext><desc>test xml</desc></test_ext>') - tree = xg.generate({'desc' : 'test xml', - 'contact' : {'email' : 'test@example.com', - 'phone' : '00-0'}}) - self.assertEqual(tostring(tree), - '<test_ext><desc>test xml</desc><contact><email>test@example.com\ -</email><phone>00-0</phone></contact></test_ext>') - tree = xg.generate({'desc' : 'test xml', - 'multiple' : ['test1', 'test2', 'test3']}) - self.assertEqual(tostring(tree), - '<test_ext><desc>test xml</desc><multiple>test1</multiple>\ -<multiple>test2</multiple><multiple>test3</multiple></test_ext>') - tree = xg.generate({'desc' : 'test xml', - 'flag' : [('flag1', 'test1'), ('flag2', 'test2')]}) - self.assertEqual(tostring(tree), - '<test_ext><desc>test xml</desc><flag name="flag1">test1</flag>\ -<flag name="flag2">test2</flag></test_ext>') - - -class DummyMetadataGenerator(metadata.MetadataGenerator): - def __init__(self, db): - super(DummyMetadataGenerator, self).__init__(db) - -package = package_db.Package("app-test", "test", "0.1") - -description = {'herd' : ['test'], - 'maintainer' : [{'email' : 'test@example.com', 'name' : 'testor'}], - 'longdescription' : 'test metadata', - 'use' : {'flag' : [('flag1', 'test flag1'), ('flag2', 'test flag2')]}, - 'upstream' : {'maintainer' : [{'name' : 'TEST'}], 'remote-id' : '001'}} - -resulting_metadata = ['<?xml version="1.0" encoding="utf-8"?>', - '<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">', - '<pkgmetadata>', '\t<herd>test</herd>', - '\t<maintainer>', '\t\t<email>test@example.com</email>', - '\t\t<name>testor</name>', '\t</maintainer>', - '\t<longdescription>test metadata</longdescription>', - '\t<use>', '\t\t<flag name="flag1">test flag1</flag>', - '\t\t<flag name="flag2">test flag2</flag>', '\t</use>', - '\t<upstream>', '\t\t<maintainer>', '\t\t\t<name>TEST</name>', - '\t\t</maintainer>', '\t\t<remote-id>001</remote-id>', - '\t</upstream>', '</pkgmetadata>'] - -class DummyDB(package_db.PackageDB): - def __init__(self, directory, repo_uri="", db_uri=""): - super(DummyDB, self).__init__(directory, repo_uri, db_uri) - - def generate_tree(self): - self.add_category("app-test") - self.add_package(package, description) - - -class TestMetadataGenerator(BaseTest): - - def test_process(self): - mg = DummyMetadataGenerator(None) - self.assertEqual(tostring(mg.process(None, description)), - '<pkgmetadata><herd>test</herd><maintainer><email>test@example.com</email>\ -<name>testor</name></maintainer><longdescription>test metadata</longdescription><use>\ -<flag name="flag1">test flag1</flag><flag name="flag2">test flag2</flag></use>\ -<upstream><maintainer><name>TEST</name></maintainer><remote-id>001</remote-id></upstream></pkgmetadata>') - - def test_generate(self): - db = DummyDB(self.tempdir.name) - db.generate() - mg = DummyMetadataGenerator(db) - metadata = mg.generate(package) - self.assertEqual(metadata, resulting_metadata) - - -def suite(): - suite = unittest.TestSuite() - suite.addTest(TestXMLGenerator('test_generate')) - suite.addTest(TestMetadataGenerator('test_process')) - suite.addTest(TestMetadataGenerator('test_generate')) - return suite |