More explicit get_or_create pattern
authorSebastian Spaeth <Sebastian@SSpaeth.de>
Wed, 9 Jan 2013 08:53:55 +0000 (09:53 +0100)
committerSebastian Spaeth <Sebastian@SSpaeth.de>
Tue, 15 Jan 2013 13:49:50 +0000 (14:49 +0100)
Don't do "user = getUser() or newUser()" in one line. It is bound to
confuse poor souls. Be more explicit here and even add a code comment.

Thanks to Elrond for not liking the previous pattern.

Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
mediagoblin/tests/tools.py

index 11c0c510f0f27df629e13c3d3a12874b875c0469..3e78b2e3bffcf64b9f039e19125b0ce52092c966 100644 (file)
@@ -205,7 +205,10 @@ def assert_db_meets_expected(db, expected):
 
 def fixture_add_user(username=u'chris', password=u'toast',
                      active_user=True):
-    test_user = User.query.filter_by(username=username).first() or User()
+    # Reuse existing user or create a new one
+    test_user = User.query.filter_by(username=username).first()
+    if test_user is None:
+        test_user = User()
     test_user.username = username
     test_user.email = username + u'@example.com'
     if password is not None: