From e14177c06988d494870bb26b618e6063c8825984 Mon Sep 17 00:00:00 2001 From: Keith Edmunds Date: Sun, 15 Jan 2023 21:19:18 +0000 Subject: [PATCH] First pass of model tests complete --- tests/test_models.py | 100 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 99 insertions(+), 1 deletion(-) diff --git a/tests/test_models.py b/tests/test_models.py index 8b3e9d9..a4f6b3a 100644 --- a/tests/test_models.py +++ b/tests/test_models.py @@ -5,6 +5,7 @@ from app.models import ( ) +# Accounts def test_accounts_creation(session): """Account creation""" @@ -43,6 +44,7 @@ def test_get_followed_accounts(session): assert acct2 in accts_followed +# Hashtags def test_hashtags_access(session): """Test we can access hashtags table""" @@ -62,7 +64,7 @@ def test_create_hashtag(session): assert ht.url == h_url -def test_create_or_add_hashtag(session): +def test_get_or_create_hashtag(session): """Check we can retrieve existing hashtag""" h_name = "MyHashtag" @@ -92,6 +94,7 @@ def test_get_followed_hashtags(session): assert hashtag2 in hashtags_followed +# Posts def test_create_posts(session): """Test we can create posts""" @@ -115,3 +118,98 @@ def test_get_by_post_id(session): assert post is post1 assert post is not post2 + + +def test_get_or_create_post(session): + """Check we can retrieve existing post""" + + post_id = "109666763623624576" + + post = Posts.get_or_create(session, post_id) + post2 = Posts.get_or_create(session, post_id) + assert post is post2 + + +def test_max_post_id_empty(session): + """Test max_post_id with empty table""" + + max_post_id = Posts.max_post_id(session) + assert max_post_id is None + + +def test_max_post_id_one(session): + """Test max_post_id with one entry""" + + post_id = "109666763623624576" + post = Posts(session, post_id) + + max_post_id = Posts.max_post_id(session) + assert max_post_id == post_id + + +def test_max_post_id_three(session): + """Test max_post_id with three entries""" + + post1_id = "109666763623624576" + post2_id = "209666763623624576" # highest ID + post3_id = "109666763623624577" + + post1 = Posts(session, post1_id) + post2 = Posts(session, post2_id) + post3 = Posts(session, post3_id) + + max_post_id = Posts.max_post_id(session) + assert max_post_id == post2_id + + +# PostTags +def test_add_hashtag_to_post(session): + """Test adding a hashtag to a post""" + + ht1 = "HashTagOne" + ht1_url = "https://one.example.com" + ht2 = "HashTagTwo" + ht2_url = "https://two.example.com" + + hashtag1 = Hashtags.get_or_create(session, ht1, ht1_url) + hashtag2 = Hashtags.get_or_create(session, ht2, ht2_url) + + post1_id = "109666763623624576" + post2_id = "209666763623624576" + post3_id = "109666763623624577" + + post1 = Posts(session, post1_id) + post2 = Posts(session, post2_id) + post3 = Posts(session, post3_id) + + post1.hashtags.append(hashtag2) + + assert len(post1.hashtags) == 1 + assert post1.hashtags[0] is hashtag2 + + +def test_add_two_hashtags_to_post(session): + """Test adding two hashtags to a post""" + + ht1 = "HashTagOne" + ht1_url = "https://one.example.com" + ht2 = "HashTagTwo" + ht2_url = "https://two.example.com" + + hashtag1 = Hashtags.get_or_create(session, ht1, ht1_url) + hashtag2 = Hashtags.get_or_create(session, ht2, ht2_url) + + post1_id = "109666763623624576" + post2_id = "209666763623624576" + post3_id = "109666763623624577" + + post1 = Posts(session, post1_id) + post2 = Posts(session, post2_id) + post3 = Posts(session, post3_id) + + post1.hashtags.append(hashtag2) + post1.hashtags.append(hashtag1) + + assert len(post1.hashtags) == 2 + assert hashtag1 in post1.hashtags + assert hashtag2 in post1.hashtags