1 # -*- coding: utf-8 -*-
2 ##############################################################################
4 # mojo, a Python library for implementing document based databases
5 # Copyright (C) 2013-2014 by Javier Sancho Fernandez <jsf at jsancho dot org>
7 # This program is free software: you can redistribute it and/or modify
8 # it under the terms of the GNU General Public License as published by
9 # the Free Software Foundation, either version 3 of the License, or
10 # (at your option) any later version.
12 # This program is distributed in the hope that it will be useful,
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 # GNU General Public License for more details.
17 # You should have received a copy of the GNU General Public License
18 # along with this program. If not, see <http://www.gnu.org/licenses/>.
20 ##############################################################################
25 class TestSequenceFunctions(unittest.TestCase):
27 self.cmojo = mojo.MySQL.Connection(host="localhost", user="mojo")
29 def test_simple_transaction(self):
30 self.cmojo.test.t1.insert({'a': 'this is a test', 'b': [1, 2, 3]})
31 self.assertEqual(self.cmojo.test.t1.count(), 1)
33 self.assertEqual(self.cmojo.test.t1.count(), 0)
35 def test_saving_lists(self):
36 doc_id = self.cmojo.test.t1.insert({'a': [1, 2, 3]})
37 self.assertEqual(self.cmojo.test.t1.find({'a': 2}).next()['_id'], doc_id)
38 self.assertEqual(self.cmojo.test.t1.find({'a': [1, 2, 3]}).next()['_id'], doc_id)
40 def test_saving_dictionaries(self):
41 doc_id = self.cmojo.test.t1.insert({'a': {'b': {'c': 10}}})
42 self.assertEqual(self.cmojo.test.t1.find({'a': {'b': {'c': 10}}}).next()['_id'], doc_id)
43 self.assertEqual(self.cmojo.test.t1.find({'a.b': {'c': 10}}).next()['_id'], doc_id)
44 self.assertEqual(self.cmojo.test.t1.find({'a.b.c': 10}).next()['_id'], doc_id)
49 if __name__ == '__main__':
50 suite = unittest.TestLoader().loadTestsFromTestCase(TestSequenceFunctions)
51 unittest.TextTestRunner(verbosity=2).run(suite)