Hy, I want to make unit test with web2py.
I follow this page : https://pythonhosted.org/web2py_utils/test_runner.html. Is Web2py Test Runner always a good way for unittesting ? After running execute_tests.py, i have got thie result and an error (logged in report file) *Result : self.assertEquals(self.nbP+1, len(self.db().select(self.db.person.id)))AssertionError: 2 != 1*It seems the insert was not performed ? ERROR: test_ajoutPerson (web2py_utils.test_runner.TestAjoutPerson) ---------------------------------------------------------------------- Traceback (most recent call last): File "xxxxxx/web2py/applications/app1/tests/manage.py", line 28, in test_ajoutPerson res = self.env['ajoutPerson']("titi") File "xxxxxx/web2py/applications/app1/controllers/manage.py", line 24, in ajoutPerson db.person.insert(name=name) File "xxxxxx/web2py/gluon/packages/dal/pydal/objects.py", line 712, in insert ret = self._db._adapter.insert(self, self._listify(fields)) File "xxxxxxweb2py/gluon/packages/dal/pydal/adapters/base.py", line 739, in insert raise e OperationalError: database is locked Thanks for help, Here is the controller's function i want to test. ****************************************************************************************** controller : manage.py def formAjoutPerson(): form=SQLFORM(db.person) # person is a table that contains one field named 'name' if form.validate(): name=form.vars.name mess=ajoutPerson(name) response.flash = mess elif form.errors : response.flash='error in the form' return locals() def ajoutPerson(name): # the libelle must be unique rows = db(db.person.name == name).select(db.person.id) if len(rows) == 0: db.person.insert(name=name) mess = 'new person added' else: mess = 'Error : name already exists return mess ****************************************************************************************** Here is the test class TestAjoutPerson(unittest.TestCase): def setUp(self): self.env = new_env(app='app1', controller='manage') self.db = copy_db(self.env, db_name='db', db_link='sqlite:memory') self.db.person.insert(name="toto") self.db.commit() rows=self.db().select(self.db.person.id) self.nbP=len(rows) # Test method def test_ajoutPerson(self): res = self.env['ajoutPerson']("titi") self.db.commit() self.assertEquals("new person added", res) #TEST self.assertEquals(self.nbP+1, len(self.db().select(self.db.person.id))) suite = unittest.TestSuite() # define a group of unit tests suite.addTest(unittest.makeSuite(TestAjoutTest)) #add to the suite test class unittest.TextTestRunner(verbosity=2).run(suite) ************************************************************************************** -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.