From 58e8c86553dde67d3515a8da4c8a11d4831097c4 Mon Sep 17 00:00:00 2001 From: David Aguilar Date: Thu, 19 Nov 2009 14:39:34 -0800 Subject: [PATCH] test: Use local classes in the serialization test suite There's no reason to have local test classes in the main test helper. Signed-off-by: David Aguilar --- test/helper.py | 51 +++++++---------------------------- test/test_cola_model_serialization.py | 35 +++++++++++++++++------- 2 files changed, 35 insertions(+), 51 deletions(-) diff --git a/test/helper.py b/test/helper.py index 4034796a..ef7ac953 100644 --- a/test/helper.py +++ b/test/helper.py @@ -7,11 +7,9 @@ from os.path import dirname from os.path import basename from cola import core -from cola.models.base import BaseModel as Model -from cola.models.observable import ObservableModel -DEBUG_MODE = os.getenv('DEBUG','') +DEBUG_MODE = os.getenv('COLA_TEST_DEBUG','') TEST_SCRIPT_DIR = dirname(__file__) ROOT_TMP_DIR = join(TEST_SCRIPT_DIR, 'tmp') @@ -19,6 +17,7 @@ TEST_TMP_DIR = join(ROOT_TMP_DIR, basename(sys.argv[0])) LAST_IDX = 0 + def tmp_path(*paths): """Returns a path relative to the test/tmp directory""" return join(TEST_SCRIPT_DIR, 'tmp', *paths) @@ -46,10 +45,10 @@ def create_dir(): os.chdir(newdir) return newdir -def rmdir(dir): +def rmdir(path): if not DEBUG_MODE: os.chdir(ROOT_TMP_DIR) - shutil.rmtree(dir) + shutil.rmtree(path) def remove_dir(): global LAST_IDX @@ -66,50 +65,18 @@ def pipe(cmd): p.close() return out -# All tests that operate on temporary data derive from helper.TestCase + class TestCase(unittest.TestCase): + """Tests that operate on temporary git repositories.""" def setUp(self): create_dir() + def tearDown(self): remove_dir() + def shell(self, cmd): result = shell(cmd) self.failIf(result != 0) + def get_dir(self): return get_dir() - -class DuckModel(Model): - def __init__(self): - Model.__init__(self) - - duck = Model() - duck.sound = 'quack' - duck.name = 'ducky' - - goose = Model() - goose.sound = 'cluck' - goose.name = 'goose' - - self.attribute = 'value' - self.mylist = [duck, duck, goose] - self.hello = 'world' - self.set_mylist([duck, duck, goose, 'meow', 'caboose', 42]) - - def duckMethod(self): - return 'duck' - -class InnerModel(Model): - def __init__(self): - Model.__init__(self) - self.foo = 'bar' - -class NestedModel(ObservableModel): - def __init__(self): - ObservableModel.__init__(self) - self.inner = InnerModel() - self.innerlist = [] - self.innerlist.append(InnerModel()) - self.innerlist.append([InnerModel()]) - self.innerlist.append([[InnerModel()]]) - self.innerlist.append([[[InnerModel(),InnerModel()]]]) - self.innerlist.append({"foo": InnerModel()}) diff --git a/test/test_cola_model_serialization.py b/test/test_cola_model_serialization.py index 0d07d448..b9eb91cd 100644 --- a/test/test_cola_model_serialization.py +++ b/test/test_cola_model_serialization.py @@ -6,17 +6,35 @@ import unittest from PyQt4 import QtCore -from cola.models.observable import ObservableModel -from cola.observer import Observer +from cola import observer +from cola.models import observable +from cola.models import base import helper -from helper import InnerModel -from helper import NestedModel -class ModelObserver(Observer, QtCore.QObject): + +class InnerModel(base.BaseModel): + def __init__(self): + base.BaseModel.__init__(self) + self.foo = 'bar' + + +class NestedModel(observable.ObservableModel): + def __init__(self): + observable.ObservableModel.__init__(self) + self.inner = InnerModel() + self.innerlist = [] + self.innerlist.append(InnerModel()) + self.innerlist.append([InnerModel()]) + self.innerlist.append([[InnerModel()]]) + self.innerlist.append([[[InnerModel(),InnerModel()]]]) + self.innerlist.append({'foo': InnerModel()}) + + +class ModelObserver(observer.Observer): def __init__(self, model): - Observer.__init__(self, model) - QtCore.QObject.__init__(self) + observer.Observer.__init__(self, model) + class TestSaveRestore(unittest.TestCase): def setUp(self): @@ -27,8 +45,7 @@ class TestSaveRestore(unittest.TestCase): path = os.path.join(helper.get_dir(), 'test.data') # save & reconstitute self.nested.save(path) - self.clone = ObservableModel.instance(path) - self.clone_observer = ModelObserver(self.clone) + self.clone = observable.ObservableModel.instance(path) def tearDown(self): """Remove test directories""" -- 2.11.4.GIT