Example #1
0
    def test__remove(self):
        def names():
            n = []
            rows = t.db_.executesql("""SELECT name FROM test;""")
            if len(rows) > 0:
                for r in rows:
                    if len(r) > 0:
                        n.append(r[0])
            return n

        t = DbObject(DBH.test)
        t.tbl_.truncate()
        t.db_.commit()

        t.company_id = COMPANY_ID
        t.name = NAME
        t.number = NUMBER
        t.start_date = START_DATE
        t.status = STATUS
        self.assertFalse(t.remove())  # Remove fails if record not added

        self.assertTrue(t.add())  # Add succeeds

        t2 = DbObject(DBH.test)
        t2.company_id = COMPANY_ID
        t2.name = NAME_2
        t2.number = NUMBER_2
        t2.start_date = START_DATE_2
        t2.status = STATUS_2
        self.assertTrue(t2.add())  # Add (2) succeeds

        # Table populated as expected
        self.assertEqual(names(), [NAME, NAME_2])

        self.assertTrue(t.remove())  # Remove returns success

        self.assertEqual(names(), [NAME_2])  # Table populated as expected

        self.assertTrue(t.add())  # Object can be re-added.

        self.assertTrue(t2.remove())  # Remove (2) returns success
        self.assertEqual(names(), [NAME])  # Table populated as expected
        self.assertTrue(t.remove())  # Remove returns success
        return