|
from postly.clients.postly_client import PostlyClient |
|
|
|
|
|
class TestPlotlyClient: |
|
def setup_method(self): |
|
self.postly_instance = PostlyClient() |
|
|
|
|
|
self.gt_posts = ["just #chilling today", "eating #steak for dinner", "ugh! this #steak tasted like dog food"] |
|
self.gt_topics = [["chilling"], ["steak"], ["steak"]] |
|
|
|
|
|
self.postly_instance.add_user("john", "password") |
|
for post in self.gt_posts: |
|
self.postly_instance.add_post("john", post) |
|
|
|
def test_add_user(self): |
|
assert "john" in self.postly_instance.userPosts |
|
|
|
def test_add_post(self): |
|
assert len(self.postly_instance.userPosts["john"]) == 3 |
|
|
|
def test_get_posts_for_user(self): |
|
retrieved_posts = self.postly_instance.get_posts_for_user("john") |
|
|
|
assert len(retrieved_posts) == 3 |
|
for post, gt_post in zip(retrieved_posts, self.gt_posts[::-1]): |
|
assert post == gt_post |
|
|
|
def test_get_posts_for_topic(self): |
|
retrieved_posts = self.postly_instance.get_posts_for_topic("steak") |
|
|
|
assert len(retrieved_posts) == 2 |
|
for post in retrieved_posts: |
|
assert "#steak" in post |
|
|
|
def test_get_trending_topics(self): |
|
trending_topics = self.postly_instance.get_trending_topics(1, 3) |
|
|
|
assert len(trending_topics) == 2 |
|
assert trending_topics == ["steak", "chilling"] |
|
|
|
trending_topics = self.postly_instance.get_trending_topics(2, 3) |
|
|
|
assert len(trending_topics) == 1 |
|
assert trending_topics == ["steak"] |
|
|
|
def test_delete_user(self): |
|
temporary_postly_instance = PostlyClient() |
|
temporary_postly_instance.add_user("simon", "password") |
|
temporary_postly_instance.add_post("simon", "just #coding today") |
|
|
|
assert "simon" in temporary_postly_instance.userPosts |
|
|
|
temporary_postly_instance.delete_user("simon") |
|
|
|
assert "simon" not in temporary_postly_instance.userPosts |
|
|