예제 #1
0
def seed_db():
    # seed the database with fake data
    with app.app_context():
        # create users
        u1 = User(name="Jami", email="*****@*****.**", password="******")
        u2 = User(name="Samyo", email="*****@*****.**", password="******")

        save_all([u1, u2])

        # follow
        u1.follow(u2)
        u2.follow(u1)

        # create and tag challenges
        c1 = Challenge(question="Who invented Python?", author=u1)
        c1.tags.append(u2)
        c1.save()

        # challenge submissions
        s = Submission(user=u2, challenge=c1, answer="Guido Van Rossum")

        save_all([u1, u2, c1, s])

        db.session.commit()
        print("Done")
예제 #2
0
파일: tests.py 프로젝트: thelomb/microblog
    def test_follow(self):
        u1 = User(username='******', email='*****@*****.**')
        u2 = User(username='******', email='*****@*****.**')
        db.session.add(u1)
        db.session.add(u2)
        db.session.commit()
        self.assertEqual(u1.followed.all(), [])
        self.assertEqual(u2.followed.all(), [])

        u1.follow(u2)
        self.assertTrue(u1.is_following(u2))
        self.assertEqual(u1.followed.count(), 1)
        self.assertEqual(u1.followed.first().username, 'susan')
        self.assertEqual(u2.followers.count(), 1)
        self.assertEqual(u2.followers.first().username, 'john')

        u1.unfollow(u2)
        self.assertFalse(u1.is_following(u2))
        self.assertEqual(u1.followed.count(), 0)
        self.assertEqual(u2.followers.count(), 0)
예제 #3
0
 def test_follows(self):
     u1 = User(email='*****@*****.**', password='******')
     u2 = User(email='*****@*****.**', password='******')
     db.session.add(u1)
     db.session.add(u2)
     db.session.commit()
     self.assertFalse(u1.is_following(u2))
     self.assertFalse(u1.is_followed_by(u2))
     timestamp_before = datetime.utcnow()
     u1.follow(u2)
     db.session.add(u1)
     db.session.commit()
     timestamp_after = datetime.utcnow()
     self.assertTrue(u1.is_following(u2))
     self.assertFalse(u1.is_followed_by(u2))
     self.assertTrue(u2.is_followed_by(u1))
     self.assertTrue(u1.followed.count() == 2)
     self.assertTrue(u2.followers.count() == 2)
     f = u1.followed.all()[-1]
     self.assertTrue(f.followed == u2)
     self.assertTrue(timestamp_before <= f.timestamp <= timestamp_after)
     f = u2.followers.all()[-1]
     self.assertTrue(f.follower == u1)
     u1.unfollow(u2)
     db.session.add(u1)
     db.session.commit()
     self.assertTrue(u1.followed.count() == 1)
     self.assertTrue(u2.followers.count() == 1)
     self.assertTrue(Follow.query.count() == 2)
     u2.follow(u1)
     db.session.add(u1)
     db.session.add(u2)
     db.session.commit()
     db.session.delete(u2)
     db.session.commit()
     self.assertTrue(Follow.query.count() == 1)
예제 #4
0
파일: tests.py 프로젝트: thelomb/microblog
    def test_follow_posts(self):
        # create four users
        u1 = User(username='******', email='*****@*****.**')
        u2 = User(username='******', email='*****@*****.**')
        u3 = User(username='******', email='*****@*****.**')
        u4 = User(username='******', email='*****@*****.**')
        db.session.add_all([u1, u2, u3, u4])

        now = datetime.utcnow()
        p1 = Post(body='post from john',
                  author=u1,
                  timestamp=now + timedelta(seconds=1))
        p2 = Post(body='post from john',
                  author=u2,
                  timestamp=now + timedelta(seconds=4))
        p3 = Post(body='post from john',
                  author=u3,
                  timestamp=now + timedelta(seconds=3))
        p4 = Post(body='post from john',
                  author=u4,
                  timestamp=now + timedelta(seconds=2))
        db.session.add_all([p1, p2, p3, p4])
        db.session.commit()

        # setup the followers
        u1.follow(u2)
        u1.follow(u4)
        u2.follow(u3)
        u3.follow(u4)

        # check the followed posts
        f1 = u1.followed_posts().all()
        f2 = u2.followed_posts().all()
        f3 = u3.followed_posts().all()
        f4 = u4.followed_posts().all()
        self.assertEqual(f1, [p2, p4, p1])
        self.assertEqual(f2, [p2, p3])
        self.assertEqual(f3, [p3, p4])
        self.assertEqual(f4, [p4])

        af4 = u4.followed_posts_sql().fetchall()
        self.assertEqual(f4[0].user_id, af4[0].user_id)
예제 #5
0
    def test_follow_posts(self):
        # create four users
        u1 = User(username='******', email='*****@*****.**')
        u2 = User(username='******', email='*****@*****.**')
        u3 = User(username='******', email='*****@*****.**')
        u4 = User(username='******', email='*****@*****.**')
        db.session.add_all([u1, u2, u3, u4])

        # create four posts
        now = datetime.utcnow()
        p1 = Post(body="post from john",
                  author=u1,
                  timestamp=now + timedelta(seconds=1))
        p2 = Post(body="post from susan",
                  author=u2,
                  timestamp=now + timedelta(seconds=4))
        p3 = Post(body="post from mary",
                  author=u3,
                  timestamp=now + timedelta(seconds=3))
        p4 = Post(body="post from david",
                  author=u4,
                  timestamp=now + timedelta(seconds=2))
        db.session.add_all([p1, p2, p3, p4])
        db.session.commit()

        # setup the followers
        u1.follow(u2)  # john follows susan
        u1.follow(u4)  # john follows david
        u2.follow(u3)  # susan follows mary
        u3.follow(u4)  # mary follows david
        db.session.commit()

        # check the followed posts of each user
        f1 = u1.followed_posts().all()
        f2 = u2.followed_posts().all()
        f3 = u3.followed_posts().all()
        f4 = u4.followed_posts().all()
        self.assertEqual(f1, [p2, p4, p1])
        self.assertEqual(f2, [p2, p3])
        self.assertEqual(f3, [p3, p4])
        self.assertEqual(f4, [p4])