diff options
Diffstat (limited to 'tests/storetests.py')
-rw-r--r-- | tests/storetests.py | 140 |
1 files changed, 140 insertions, 0 deletions
diff --git a/tests/storetests.py b/tests/storetests.py new file mode 100644 index 0000000..1752fe6 --- /dev/null +++ b/tests/storetests.py @@ -0,0 +1,140 @@ +# 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 +from tests.utils import skip, catch_unimplemented + +import random +from sugar.tutorius.store import * + +g_tutorial_id = '4079' +g_other_id = '4080' + +class StoreProxyTest(unittest.TestCase): + def setUp(self): + self.store = StoreProxy("http://bobthebuilder.mine.nu/tutorius/en-US/tutorius") + + def tearDown(self): + pass + + @catch_unimplemented + def test_get_categories(self): + categories = self.store.get_categories() + + assert isinstance(categories, list), "categories should be a list" + + @catch_unimplemented + def test_get_tutorials(self): + self.store.get_tutorials() + + def test_get_latest_version(self): + version_dict = self.store.get_latest_version([]) + + assert isinstance(version_dict, dict) + + @catch_unimplemented + def test_download_tutorial(self): + tutorial = self.store.download_tutorial(g_other_id) + + assert tutorial is not None + + @catch_unimplemented + def test_login(self): + assert self.store.login("benoit.tremblay1@gmail.com", "tutorius12") + + @catch_unimplemented + def test_register_new_user(self): + random_num = str(random.randint(0, 999999999)) + user_info = { + 'nickname' : "Albert%s" % (random_num), + 'password' : "tutorius12", + 'email' : 'albertthetester%s@mozambique.org' % (random_num) + } + + assert self.store.register_new_user(user_info) + + +class StoreProxyLoginTest(unittest.TestCase): + @catch_unimplemented + def setUp(self): + self.store = StoreProxy("http://bobthebuilder.mine.nu/tutorius/en-US/tutorius") + self.store.login("nobody@mozilla.org", "tutorius12") + + @catch_unimplemented + def tearDown(self): + session_id = self.store.get_session_id() + + if session_id is not None: + self.store.close_session() + + + @catch_unimplemented + def test_get_session_id(self): + session_id = self.store.get_session_id() + + assert session_id is not None + + @catch_unimplemented + def test_rate(self): + assert self.store.rate(5, g_tutorial_id) + + @catch_unimplemented + def test_publish(self): + # TODO : We need to send in a real tutorial loaded from + # the Vault + tutorial_info = { + 'name': 'newtut', + 'summary': 'This is a tutorial', + 'filename': 'test.xml', + 'homepage': 'http://google.com', + 'version': '1', + 'cat1': '17', + 'cat2': '18', + 'cat3': '' + } + assert self.store.publish('This should be a real tutorial...', tutorial_info) + + @catch_unimplemented + def test_unpublish(self): + assert self.store.unpublish(g_tutorial_id) + + # Republish the tutorial + self.store.publish(None, None, g_tutorial_id) + + def test_republish(self): + assert self.store.publish(None, None, g_tutorial_id) + + @catch_unimplemented + def test_update_published_tutorial(self): + # TODO : Run these tests with files from the Vault + #self.store.publish([g_tutorial_id, 'Fake tutorial']) + + tutorial_info = { + 'name': 'newtut', + 'summary': 'This is an updated tutorial', + 'filename': 'test.xml', + 'homepage': 'http://google.com', + 'version': '2', + 'cat1': '17', + 'cat2': '18', + 'cat3': '' + } + + assert self.store.update_published_tutorial(g_tutorial_id, 'This is an updated tutorial', tutorial_info) + + def test_close_session(self): + assert self.store.close_session() + |