def test_sqla_table_editrec_basics(self): from ptah.manage.sqla import SQLAModule, EditRecord rec = TestSqlaModuleTable() rec.name = 'Test record' ptah.get_session().add(rec) ptah.get_session().flush() rec_id = rec.id request = self.make_request() mod = SQLAModule(None, request) table = mod['psqla-test_sqla_table'] rec = table[rec_id] form = EditRecord(rec, request) form.update_form() self.assertEqual(form.label, 'record 1') self.assertEqual(form.form_content(), {'name': 'Test record'}) request = DummyRequest( POST={'form.buttons.cancel': 'Cancel'}) form = EditRecord(rec, request) res = form() self.assertIsInstance(res, HTTPFound) self.assertEqual(res.headers['location'], '..')
def test_sqla_table_editrec_remove(self): from ptah.manage.sqla import SQLAModule, EditRecord rec = TestSqlaModuleTable() rec.name = 'Test record' ptah.get_session().add(rec) ptah.get_session().flush() rec_id = rec.id mod = SQLAModule(None, DummyRequest()) table = mod['psqla-test_sqla_table'] rec = table[rec_id] request = self.make_request( POST={'form.buttons.remove': 'Remove'}) form = EditRecord(rec, request) form.csrf = False res = form() self.assertIn('Table record has been removed.', request.render_messages()) self.assertIsInstance(res, HTTPFound) self.assertEqual(res.headers['location'], '..') rec = ptah.get_session().query(TestSqlaModuleTable).filter( TestSqlaModuleTable.id == rec_id).first() self.assertIsNone(rec, None)
def test_sqla_table_editrec_modify(self): from ptah.manage.sqla import SQLAModule, EditRecord rec = TestSqlaModuleTable() rec.name = 'Test record' ptah.cms.Session.add(rec) ptah.cms.Session.flush() rec_id = rec.id mod = SQLAModule(None, DummyRequest()) table = mod['psqla-test_sqla_table'] rec = table[rec_id] request = DummyRequest(POST={'form.buttons.modify': 'Modify'}) form = EditRecord(rec, request) form.csrf = False form.update() self.assertIn('Please fix indicated errors', ptah.view.render_messages(request)) request = DummyRequest(POST={ 'form.buttons.modify': 'Modify', 'name': 'Record modified' }) form = EditRecord(rec, request) form.csrf = False res = form.update() self.assertIn('Table record has been modified.', ptah.view.render_messages(request)) self.assertIsInstance(res, HTTPFound) self.assertEqual(res.headers['location'], '..') rec = ptah.cms.Session.query(TestSqlaModuleTable).filter( TestSqlaModuleTable.id == rec_id).first() self.assertEqual(rec.name, 'Record modified')
def test_sqla_table_no_remove_for_edit_model(self): from ptah.manage.sqla import SQLAModule, EditRecord rec = TestSqlaModuleContent() rec.name = 'Test record' ptah.get_session().add(rec) ptah.get_session().flush() rec_id = rec.id mod = SQLAModule(None, DummyRequest()) table = mod['psqla-test_sqla_content'] rec = table[rec_id] form = EditRecord(rec, self.make_request()) form.update() self.assertNotIn('form.buttons.remove', form.render())