Skip to content

Commit 5d12d91

Browse files
committed
Add tests for count_phrases analyzer
1 parent 3d0e347 commit 5d12d91

File tree

1 file changed

+75
-0
lines changed

1 file changed

+75
-0
lines changed

tests/test_count_phrases.py

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
#!/usr/bin/env python3
2+
"""test the count_phrases built-in analyzer"""
3+
4+
import sys
5+
from unittest.mock import MagicMock, patch
6+
7+
import pandas as pd
8+
9+
import ica.analyzers.count_phrases as count_phrases
10+
from tests import ICATestCase
11+
12+
13+
class TestMessageTotals(ICATestCase):
14+
15+
@patch("ica.output_results")
16+
@patch(
17+
"sys.argv",
18+
[count_phrases.__file__, "-c", "Thomas Riverstone", "reminds me"],
19+
)
20+
def test_single_phrase(self, output_results: MagicMock) -> None:
21+
"""should count the number of occurrences of a single phrase"""
22+
count_phrases.main()
23+
df: pd.DataFrame = output_results.call_args[0][0]
24+
phrase = sys.argv[-1]
25+
self.assertEqual(df.loc[phrase]["count"], 2)
26+
27+
@patch("ica.output_results")
28+
@patch(
29+
"sys.argv",
30+
[count_phrases.__file__, "-c", "Thomas Riverstone", "hey", "reminds me"],
31+
)
32+
def test_multiple_phrases(self, output_results: MagicMock) -> None:
33+
"""should count the number of occurrences of multiple phrases"""
34+
count_phrases.main()
35+
df: pd.DataFrame = output_results.call_args[0][0]
36+
phrases = sys.argv[-2:]
37+
self.assertEqual(df.loc[phrases[0]]["count"], 2)
38+
self.assertEqual(df.loc[phrases[1]]["count"], 2)
39+
40+
@patch("ica.output_results")
41+
@patch(
42+
"sys.argv",
43+
[count_phrases.__file__, "-c", "Thomas Riverstone", "🤣", "😅"],
44+
)
45+
def test_emoji(self, output_results: MagicMock) -> None:
46+
"""should count the number of occurrences of the specified emoji"""
47+
count_phrases.main()
48+
df: pd.DataFrame = output_results.call_args[0][0]
49+
phrases = sys.argv[-2:]
50+
self.assertEqual(df.loc[phrases[0]]["count"], 2)
51+
self.assertEqual(df.loc[phrases[1]]["count"], 1)
52+
53+
@patch("ica.output_results")
54+
@patch(
55+
"sys.argv",
56+
[count_phrases.__file__, "-c", "Jane Fernbrook", " "],
57+
)
58+
def test_whitespace(self, output_results: MagicMock) -> None:
59+
"""should count the number of occurrences of a space character"""
60+
count_phrases.main()
61+
df: pd.DataFrame = output_results.call_args[0][0]
62+
phrase = sys.argv[-1]
63+
self.assertEqual(df.loc[phrase]["count"], 90)
64+
65+
@patch("ica.output_results")
66+
@patch(
67+
"sys.argv",
68+
[count_phrases.__file__, "-c", "Thomas Riverstone", "!"],
69+
)
70+
def test_special_characters(self, output_results: MagicMock) -> None:
71+
"""should count the number of occurrences of a special character"""
72+
count_phrases.main()
73+
df: pd.DataFrame = output_results.call_args[0][0]
74+
phrase = sys.argv[-1]
75+
self.assertEqual(df.loc[phrase]["count"], 10)

0 commit comments

Comments
 (0)