sqlalchemy_utils.merge_references

Here are the examples of the python api sqlalchemy_utils.merge_references taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.

4 Examples 7

Example 1

Project: sqlalchemy-utils Source File: test_merge_references.py
    def test_updates_foreign_keys(self, session, User, BlogPost):
        john = User(name=u'John')
        jack = User(name=u'Jack')
        post = BlogPost(title=u'Some title', author=john)
        post2 = BlogPost(title=u'Other title', author=jack)
        session.add(john)
        session.add(jack)
        session.add(post)
        session.add(post2)
        session.commit()
        merge_references(john, jack)
        session.commit()
        assert post.author == jack
        assert post2.author == jack

Example 2

Project: sqlalchemy-utils Source File: test_merge_references.py
    def test_object_merging_whenever_possible(self, session, User, BlogPost):
        john = User(name=u'John')
        jack = User(name=u'Jack')
        post = BlogPost(title=u'Some title', author=john)
        post2 = BlogPost(title=u'Other title', author=jack)
        session.add(john)
        session.add(jack)
        session.add(post)
        session.add(post2)
        session.commit()
        # Load the author for post
        assert post.author_id == john.id
        merge_references(john, jack)
        assert post.author_id == jack.id
        assert post2.author_id == jack.id

Example 3

Project: sqlalchemy-utils Source File: test_merge_references.py
Function: test_supports_associations
    def test_supports_associations(self, session, User, Team):
        john = User(name=u'John')
        jack = User(name=u'Jack')
        team = Team(name=u'Team')
        team.members.append(john)
        session.add(john)
        session.add(jack)
        session.commit()
        merge_references(john, jack)
        assert john not in team.members
        assert jack in team.members

Example 4

Project: sqlalchemy-utils Source File: test_merge_references.py
Function: test_supports_associations
    def test_supports_associations(self, session, User, Team, TeamMember):
        john = User(name=u'John')
        jack = User(name=u'Jack')
        team = Team(name=u'Team')
        team.members.append(TeamMember(user=john))
        session.add(john)
        session.add(jack)
        session.add(team)
        session.commit()
        merge_references(john, jack)
        session.commit()
        users = [member.user for member in team.members]
        assert john not in users
        assert jack in users