From 74dcbcb643cfd66df071020320ba6c0004e92c17 Mon Sep 17 00:00:00 2001 From: mike Date: Mon, 12 Oct 2009 06:54:12 +0000 Subject: LP 448319 : Refactoring to translate function, adding tests for translation of resources --- (limited to 'tests') diff --git a/tests/run-tests.py b/tests/run-tests.py index 23d7e24..9b4fa25 100755 --- a/tests/run-tests.py +++ b/tests/run-tests.py @@ -41,6 +41,7 @@ if __name__=='__main__': import propertiestests import serializertests import probetests + import translatortests suite = unittest.TestSuite() suite.addTests(unittest.findTestCases(coretests)) suite.addTests(unittest.findTestCases(servicestests)) @@ -54,6 +55,7 @@ if __name__=='__main__': suite.addTests(unittest.findTestCases(propertiestests)) suite.addTests(unittest.findTestCases(serializertests)) suite.addTests(unittest.findTestCases(probetests)) + suite.addTests(unittest.findTestCases(translatortests)) runner = unittest.TextTestRunner() runner.run(suite) coverage.stop() @@ -73,5 +75,6 @@ if __name__=='__main__': from actiontests import * from serializertests import * from probetests import * + from translatortests import * unittest.main() diff --git a/tests/translatortests.py b/tests/translatortests.py new file mode 100644 index 0000000..0f053b9 --- /dev/null +++ b/tests/translatortests.py @@ -0,0 +1,91 @@ +# Copyright (C) 2009, Tutorius.org +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +import unittest +import os + +from sugar.tutorius.translator import * +from sugar.tutorius.properties import * + +############################################################################## +## Helper classes +class ResourceAction(TPropContainer): + resource = TResourceProperty() + + def __init__(self): + TPropContainer.__init__(self) + +class NestedResource(TPropContainer): + nested = TAddonProperty() + + def __init__(self): + TPropContainer.__init__(self) + self.nested = ResourceAction() + +class ListResources(TPropContainer): + nested_list = TAddonListProperty() + + def __init__(self): + TPropContainer.__init__(self) + self.nested_list = [ResourceAction(), ResourceAction()] + +## +############################################################################## + +class ResourceTranslatorTests(unittest.TestCase): + temp_path = "/tmp/tutorius" + file_name = "temp.txt" + + def setUp(self): + try: + os.mkdir(self.temp_path) + except: + pass + new_file = file(os.path.join(self.temp_path, self.file_name), "w") + + # Use a dummy prob manager - we shouldn't be using it + self.prob_man = object() + + self.translator = ResourceTranslator(self.prob_man, '0101010101', testing=True) + + pass + + def tearDown(self): + os.unlink(os.path.join(self.temp_path, self.file_name)) + pass + + def test_translate(self): + # Create an action with a resource property + res_action = ResourceAction() + + self.translator.translate(res_action) + + assert getattr(res_action, "resource").type == "file", "Resource was not converted to file" + + def test_recursive_translate(self): + nested_action = NestedResource() + + self.translator.translate(nested_action) + + assert getattr(getattr(nested_action, "nested"), "resource").type == "file", "Nested resource was not converted properly" + + def test_list_translate(self): + list_action = ListResources() + + self.translator.translate(list_action) + + for container in list_action.nested_list: + assert getattr(container, "resource").type == "file", "Element of list was not converted properly" -- cgit v0.9.1