| 453 | assert_func(getattr(a, k, None), v) |
| 454 | |
| 455 | def _assert_crud(self, instance, defaults=None, updates=None): |
| 456 | # Assert instance is not already in the database. |
| 457 | self.assertIsNone(getattr(instance, "id", None)) |
| 458 | |
| 459 | # Assert default values are assigned. |
| 460 | self._assert_values_equal(instance, values=defaults) |
| 461 | |
| 462 | # Assert instance is created in the datbaase. |
| 463 | saved = self.access_type.add_or_update(instance) |
| 464 | self.assertIsNotNone(saved.id) |
| 465 | self._assert_fields_equal(instance, saved, exclude=["id"]) |
| 466 | retrieved = self.access_type.get_by_id(saved.id) |
| 467 | self._assert_fields_equal(saved, retrieved) |
| 468 | |
| 469 | # Assert instance is updated in the database. |
| 470 | for k, v in six.iteritems(updates or {}): |
| 471 | setattr(instance, k, v) |
| 472 | |
| 473 | updated = self.access_type.add_or_update(instance) |
| 474 | self._assert_fields_equal(instance, updated) |
| 475 | |
| 476 | # Assert instance is deleted from the database. |
| 477 | retrieved = self.access_type.get_by_id(instance.id) |
| 478 | retrieved.delete() |
| 479 | self.assertRaises( |
| 480 | StackStormDBObjectNotFoundError, self.access_type.get_by_id, instance.id |
| 481 | ) |
| 482 | |
| 483 | def _assert_unique_key_constraint(self, instance): |
| 484 | # Assert instance is not already in the database. |