Gentoo Archives: gentoo-commits

From: Jauhien Piatlicki <piatlicki@×××××.com>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/g-sorcery:master commit in: g_sorcery/, tests/dummy_backend/, tests/
Date: Mon, 01 Jul 2013 21:40:57
Message-Id: 1372714926.c9ad38ff53c9dc8baa38a9b888c3e83a7b47dc1b.jauhien@gentoo
1 commit: c9ad38ff53c9dc8baa38a9b888c3e83a7b47dc1b
2 Author: Jauhien Piatlicki (jauhien) <piatlicki <AT> gmail <DOT> com>
3 AuthorDate: Mon Jul 1 21:42:06 2013 +0000
4 Commit: Jauhien Piatlicki <piatlicki <AT> gmail <DOT> com>
5 CommitDate: Mon Jul 1 21:42:06 2013 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/g-sorcery.git;a=commit;h=c9ad38ff
7
8 g_sorcery/g_sorcery: get_backend
9
10 ---
11 g_sorcery/g_sorcery.py | 11 ++++++++++-
12 tests/dummy_backend/__init__.py | 4 ++++
13 tests/dummy_backend/backend.py | 4 ++++
14 tests/test_g_sorcery.py | 16 ++++++++++++++++
15 4 files changed, 34 insertions(+), 1 deletion(-)
16
17 diff --git a/g_sorcery/g_sorcery.py b/g_sorcery/g_sorcery.py
18 index 4b1784a..c815ec9 100644
19 --- a/g_sorcery/g_sorcery.py
20 +++ b/g_sorcery/g_sorcery.py
21 @@ -11,7 +11,7 @@
22 :license: GPL-2, see LICENSE for more details.
23 """
24
25 -import os, sys
26 +import importlib, os, sys
27
28 from .fileutils import FileJSON
29
30 @@ -41,5 +41,14 @@ def main():
31 return -1
32 pass
33
34 +def get_backend(package):
35 + try:
36 + module = importlib.import_module(package + '.backend')
37 + except ImportError:
38 + return None
39 +
40 + return module.instance
41 +
42 +
43 if __name__ == "__main__":
44 sys.exit(main())
45
46 diff --git a/tests/dummy_backend/__init__.py b/tests/dummy_backend/__init__.py
47 new file mode 100644
48 index 0000000..2ad1e71
49 --- /dev/null
50 +++ b/tests/dummy_backend/__init__.py
51 @@ -0,0 +1,4 @@
52 +#!/usr/bin/env python
53 +# -*- coding: utf-8 -*-
54 +
55 +__all__ = ['backend']
56
57 diff --git a/tests/dummy_backend/backend.py b/tests/dummy_backend/backend.py
58 new file mode 100644
59 index 0000000..b23785c
60 --- /dev/null
61 +++ b/tests/dummy_backend/backend.py
62 @@ -0,0 +1,4 @@
63 +#!/usr/bin/env python
64 +# -*- coding: utf-8 -*-
65 +
66 +instance = 'test'
67
68 diff --git a/tests/test_g_sorcery.py b/tests/test_g_sorcery.py
69 index 7ff9992..ece991d 100644
70 --- a/tests/test_g_sorcery.py
71 +++ b/tests/test_g_sorcery.py
72 @@ -13,6 +13,10 @@
73
74 import os, subprocess, tempfile, unittest
75
76 +from g_sorcery import g_sorcery
77 +
78 +from tests.dummy_backend import backend as dummyBackend
79 +
80 class TestBin(unittest.TestCase):
81 def setUp(self):
82 self.tempdir = tempfile.TemporaryDirectory()
83 @@ -42,9 +46,21 @@ class TestBin(unittest.TestCase):
84 self.assertRaises(subprocess.CalledProcessError, subprocess.check_output, './g-empty')
85 os.chdir(prev)
86
87 +class TestGSorcery(unittest.TestCase):
88 + def setUp(self):
89 + self.tempdir = tempfile.TemporaryDirectory()
90 +
91 + def tearDown(self):
92 + del self.tempdir
93 +
94 + def test_get_backend(self):
95 + self.assertEqual(g_sorcery.get_backend('nonexistent_backend'), None)
96 + self.assertEqual(g_sorcery.get_backend('dummy_backend'), dummyBackend.instance)
97 +
98 def suite():
99 suite = unittest.TestSuite()
100 suite.addTest(TestBin('test_g_sorcery'))
101 suite.addTest(TestBin('test_nonexistent_backend'))
102 suite.addTest(TestBin('test_empty_config'))
103 + suite.addTest(TestGSorcery('test_get_backend'))
104 return suite