fix: show display text for related objects, in version diff
This commit is contained in:
parent
5b6c686a9d
commit
2723965a6a
2 changed files with 98 additions and 25 deletions
|
|
@ -174,11 +174,15 @@ class TestVersionDiff(VersionWebTestCase):
|
|||
["active", "person_uuid", "prevent_edit", "username", "uuid"],
|
||||
)
|
||||
|
||||
def test_render_values(self):
|
||||
def test_render_version_value(self):
|
||||
import sqlalchemy_continuum as continuum
|
||||
|
||||
model = self.app.model
|
||||
user = model.User(username="fred")
|
||||
person = model.Person(full_name="Fred Flintstone")
|
||||
self.session.add(person)
|
||||
|
||||
# create, update, delete user
|
||||
user = model.User(username="fred", person=person)
|
||||
self.session.add(user)
|
||||
self.session.commit()
|
||||
user.username = "freddie"
|
||||
|
|
@ -191,32 +195,42 @@ class TestVersionDiff(VersionWebTestCase):
|
|||
versions = self.session.query(vercls).order_by(vercls.transaction_id).all()
|
||||
self.assertEqual(len(versions), 3)
|
||||
|
||||
# create (1st version)
|
||||
version = versions[0]
|
||||
diff = self.make_diff(version)
|
||||
self.assertEqual(diff.nature, "create")
|
||||
self.assertEqual(diff.render_old_value("username"), "")
|
||||
self.assertEqual(
|
||||
diff.render_new_value("username"),
|
||||
'<span style="font-family: monospace;">'fred'</span>',
|
||||
)
|
||||
self.assertIn("fred", diff.render_new_value("username"))
|
||||
self.assertNotIn("freddie", diff.render_new_value("username"))
|
||||
self.assertEqual(diff.render_old_value("person_uuid"), "")
|
||||
# rendered person_uuid includes display name
|
||||
html = diff.render_new_value("person_uuid")
|
||||
self.assertIn(str(person.uuid), html)
|
||||
self.assertIn("Fred Flintstone", html)
|
||||
|
||||
# update (2nd version)
|
||||
version = versions[1]
|
||||
diff = self.make_diff(version)
|
||||
self.assertEqual(diff.nature, "update")
|
||||
self.assertEqual(
|
||||
diff.render_old_value("username"),
|
||||
'<span style="font-family: monospace;">'fred'</span>',
|
||||
)
|
||||
self.assertEqual(
|
||||
diff.render_new_value("username"),
|
||||
'<span style="font-family: monospace;">'freddie'</span>',
|
||||
)
|
||||
self.assertIn("fred", diff.render_old_value("username"))
|
||||
self.assertNotIn("freddie", diff.render_old_value("username"))
|
||||
self.assertIn("freddie", diff.render_new_value("username"))
|
||||
# rendered person_uuid includes display name
|
||||
html = diff.render_old_value("person_uuid")
|
||||
self.assertIn(str(person.uuid), html)
|
||||
self.assertIn("Fred Flintstone", html)
|
||||
html = diff.render_new_value("person_uuid")
|
||||
self.assertIn(str(person.uuid), html)
|
||||
self.assertIn("Fred Flintstone", html)
|
||||
|
||||
# delete (3rd version)
|
||||
version = versions[2]
|
||||
diff = self.make_diff(version)
|
||||
self.assertEqual(diff.nature, "delete")
|
||||
self.assertEqual(
|
||||
diff.render_old_value("username"),
|
||||
'<span style="font-family: monospace;">'freddie'</span>',
|
||||
)
|
||||
self.assertIn("freddie", diff.render_old_value("username"))
|
||||
self.assertEqual(diff.render_new_value("username"), "")
|
||||
# rendered person_uuid includes display name
|
||||
html = diff.render_old_value("person_uuid")
|
||||
self.assertIn(str(person.uuid), html)
|
||||
self.assertIn("Fred Flintstone", html)
|
||||
self.assertEqual(diff.render_new_value("person_uuid"), "")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue