|
@@ -4,6 +4,7 @@ Created on Tue Jun 24 09:43:53 2014
|
|
|
|
|
|
@author: pietro
|
|
|
"""
|
|
|
+import sys
|
|
|
from fnmatch import fnmatch
|
|
|
from grass.gunittest.case import TestCase
|
|
|
from grass.gunittest.main import test
|
|
@@ -11,11 +12,30 @@ from grass.gunittest.main import test
|
|
|
from grass.script.core import get_commands
|
|
|
from grass.pygrass.modules.interface import Module
|
|
|
|
|
|
+PY2 = sys.version_info[0] == 2
|
|
|
+if PY2:
|
|
|
+ from StringIO import StringIO
|
|
|
+else:
|
|
|
+ from io import BytesIO as StringIO
|
|
|
+
|
|
|
|
|
|
SKIP = ["g.parser", ]
|
|
|
|
|
|
|
|
|
-class TestModulesMeta(type):
|
|
|
+# taken from six
|
|
|
+def with_metaclass(meta, *bases):
|
|
|
+ """Create a base class with a metaclass."""
|
|
|
+ # This requires a bit of explanation: the basic idea is to make a dummy
|
|
|
+ # metaclass for one level of class instantiation that replaces itself with
|
|
|
+ # the actual metaclass.
|
|
|
+ class metaclass(meta):
|
|
|
+
|
|
|
+ def __new__(cls, name, this_bases, d):
|
|
|
+ return meta(name, bases, d)
|
|
|
+ return type.__new__(metaclass, 'temporary_class', (), {})
|
|
|
+
|
|
|
+
|
|
|
+class ModulesMeta(type):
|
|
|
def __new__(mcs, name, bases, dict):
|
|
|
|
|
|
def gen_test(cmd):
|
|
@@ -31,15 +51,15 @@ class TestModulesMeta(type):
|
|
|
return type.__new__(mcs, name, bases, dict)
|
|
|
|
|
|
|
|
|
-class TestModules(TestCase):
|
|
|
- __metaclass__ = TestModulesMeta
|
|
|
+class TestModules(with_metaclass(ModulesMeta, TestCase)):
|
|
|
+ pass
|
|
|
|
|
|
|
|
|
class TestModulesPickability(TestCase):
|
|
|
def test_rsun(self):
|
|
|
"""Test if a Module instance is pickable"""
|
|
|
import pickle
|
|
|
- from StringIO import StringIO
|
|
|
+
|
|
|
out = StringIO()
|
|
|
pickle.dump(Module('r.sun'), out)
|
|
|
out.close()
|