소스 검색

Add test to ensure the limit is enforced

theenglishway (time) 7 년 전
부모
커밋
a28734f500
2개의 변경된 파일29개의 추가작업 그리고 7개의 파일을 삭제
  1. 5 0
      tests/conftest.py
  2. 24 7
      tests/test_cli.py

+ 5 - 0
tests/conftest.py

@@ -19,6 +19,11 @@ def user():
     return "the_english_way"
 
 
+@pytest.fixture(scope="session")
+def user_prolific():
+    return "realDonaldTrump"
+
+
 @pytest.fixture(scope="session")
 def tweet_limit():
     return 10

+ 24 - 7
tests/test_cli.py

@@ -19,19 +19,25 @@ def test_command_line_interface(cli_runner):
 
 class TestMain:
     @pytest.mark.send_request
-    def test_timeline_no_limit(self, cli_runner, user):
-        result = cli_runner.invoke(cli.main, ['timeline', user])
+    def test_timeline_no_limit(self, cli_runner, user_prolific):
+        result = cli_runner.invoke(
+            cli.main,
+            ['timeline', user_prolific]
+        )
         assert result.exit_code == 0
 
         lines = result.output.split('\n')[:-1]
-        assert 100 > len(lines) > 0
+        assert len(lines) == 100
 
         for l in lines:
             assert "Tweet" in l
 
     @pytest.mark.send_request
-    def test_timeline_limit(self, cli_runner, user, tweet_limit):
-        result = cli_runner.invoke(cli.main, ['timeline', user, '--limit', tweet_limit])
+    def test_timeline_limit(self, cli_runner, user_prolific, tweet_limit):
+        result = cli_runner.invoke(
+            cli.main,
+            ['timeline', user_prolific, '--limit', tweet_limit]
+        )
         assert result.exit_code == 0
 
         lines = result.output.split('\n')[:-1]
@@ -40,6 +46,17 @@ class TestMain:
 
 class TestDb:
     @pytest.mark.send_request
-    def test_timeline_no_limit(self, cli_runner, user):
-        result = cli_runner.invoke(cli.main, ['db', 'timeline', user])
+    def test_timeline_no_limit(self, cli_runner, user_prolific):
+        result = cli_runner.invoke(
+            cli.main,
+            ['db', 'timeline', user_prolific]
+        )
+        assert result.exit_code == 0
+
+    @pytest.mark.send_request
+    def test_timeline_limit(self, cli_runner, user_prolific, tweet_limit):
+        result = cli_runner.invoke(
+            cli.main,
+            ['db', 'timeline', user_prolific, '--limit', tweet_limit]
+        )
         assert result.exit_code == 0