Fix tests

This commit is contained in:
Ivan Habunek 2022-11-12 09:55:12 +01:00
parent 8fcdb0b061
commit 22db8eaf2f
No known key found for this signature in database
GPG Key ID: CDBD63C43A30BB95
1 changed files with 48 additions and 25 deletions

View File

@ -146,7 +146,7 @@ def test_timeline(mock_get, monkeypatch, capsys):
assert "Frank Zappa 🎸" in lines[1] assert "Frank Zappa 🎸" in lines[1]
assert "@fz" in lines[1] assert "@fz" in lines[1]
assert "2017-04-12 15:53" in lines[1] assert "2017-04-12 17:53 CEST" in lines[1]
assert ( assert (
"The computer can't tell you the emotional story. It can give you the " "The computer can't tell you the emotional story. It can give you the "
@ -187,7 +187,7 @@ def test_timeline_with_re(mock_get, monkeypatch, capsys):
assert "Frank Zappa" in lines[1] assert "Frank Zappa" in lines[1]
assert "@fz" in lines[1] assert "@fz" in lines[1]
assert "2017-04-12 15:53" in lines[1] assert "2017-04-12 17:53 CEST" in lines[1]
assert ( assert (
"The computer can't tell you the emotional story. It can give you the " "The computer can't tell you the emotional story. It can give you the "
@ -363,45 +363,69 @@ def test_search(mock_get, capsys):
@mock.patch('toot.http.post') @mock.patch('toot.http.post')
@mock.patch('toot.http.get') @mock.patch('toot.http.get')
def test_follow(mock_get, mock_post, capsys): def test_follow(mock_get, mock_post, capsys):
mock_get.return_value = MockResponse([ mock_get.return_value = MockResponse({
{'id': 123, 'acct': 'blixa@other.acc'}, "accounts": [
{'id': 321, 'acct': 'blixa'}, {"id": 123, "acct": "blixa@other.acc"},
]) {"id": 321, "acct": "blixa"},
]
})
mock_post.return_value = MockResponse() mock_post.return_value = MockResponse()
console.run_command(app, user, 'follow', ['blixa']) console.run_command(app, user, 'follow', ['blixa'])
mock_get.assert_called_once_with(app, user, '/api/v1/accounts/search', {'q': 'blixa'}) mock_get.assert_called_once_with(app, user, '/api/v2/search', {'q': 'blixa', 'type': 'accounts', 'resolve': True})
mock_post.assert_called_once_with(app, user, '/api/v1/accounts/321/follow') mock_post.assert_called_once_with(app, user, '/api/v1/accounts/321/follow')
out, err = capsys.readouterr() out, err = capsys.readouterr()
assert "You are now following blixa" in out assert "You are now following blixa" in out
@mock.patch('toot.http.post')
@mock.patch('toot.http.get')
def test_follow_case_insensitive(mock_get, mock_post, capsys):
mock_get.return_value = MockResponse({
"accounts": [
{"id": 123, "acct": "blixa@other.acc"},
{"id": 321, "acct": "blixa"},
]
})
mock_post.return_value = MockResponse()
console.run_command(app, user, 'follow', ['bLiXa@oThEr.aCc'])
mock_get.assert_called_once_with(app, user, '/api/v2/search', {'q': 'bLiXa@oThEr.aCc', 'type': 'accounts', 'resolve': True})
mock_post.assert_called_once_with(app, user, '/api/v1/accounts/123/follow')
out, err = capsys.readouterr()
assert "You are now following bLiXa@oThEr.aCc" in out
@mock.patch('toot.http.get') @mock.patch('toot.http.get')
def test_follow_not_found(mock_get, capsys): def test_follow_not_found(mock_get, capsys):
mock_get.return_value = MockResponse() mock_get.return_value = MockResponse({"accounts": []})
with pytest.raises(ConsoleError) as ex: with pytest.raises(ConsoleError) as ex:
console.run_command(app, user, 'follow', ['blixa']) console.run_command(app, user, 'follow', ['blixa'])
mock_get.assert_called_once_with(app, user, '/api/v1/accounts/search', {'q': 'blixa'}) mock_get.assert_called_once_with(app, user, '/api/v2/search', {'q': 'blixa', 'type': 'accounts', 'resolve': True})
assert "Account not found" == str(ex.value) assert "Account not found" == str(ex.value)
@mock.patch('toot.http.post') @mock.patch('toot.http.post')
@mock.patch('toot.http.get') @mock.patch('toot.http.get')
def test_unfollow(mock_get, mock_post, capsys): def test_unfollow(mock_get, mock_post, capsys):
mock_get.return_value = MockResponse([ mock_get.return_value = MockResponse({
"accounts": [
{'id': 123, 'acct': 'blixa@other.acc'}, {'id': 123, 'acct': 'blixa@other.acc'},
{'id': 321, 'acct': 'blixa'}, {'id': 321, 'acct': 'blixa'},
]) ]
})
mock_post.return_value = MockResponse() mock_post.return_value = MockResponse()
console.run_command(app, user, 'unfollow', ['blixa']) console.run_command(app, user, 'unfollow', ['blixa'])
mock_get.assert_called_once_with(app, user, '/api/v1/accounts/search', {'q': 'blixa'}) mock_get.assert_called_once_with(app, user, '/api/v2/search', {'q': 'blixa', 'type': 'accounts', 'resolve': True})
mock_post.assert_called_once_with(app, user, '/api/v1/accounts/321/unfollow') mock_post.assert_called_once_with(app, user, '/api/v1/accounts/321/unfollow')
out, err = capsys.readouterr() out, err = capsys.readouterr()
@ -410,12 +434,12 @@ def test_unfollow(mock_get, mock_post, capsys):
@mock.patch('toot.http.get') @mock.patch('toot.http.get')
def test_unfollow_not_found(mock_get, capsys): def test_unfollow_not_found(mock_get, capsys):
mock_get.return_value = MockResponse([]) mock_get.return_value = MockResponse({"accounts": []})
with pytest.raises(ConsoleError) as ex: with pytest.raises(ConsoleError) as ex:
console.run_command(app, user, 'unfollow', ['blixa']) console.run_command(app, user, 'unfollow', ['blixa'])
mock_get.assert_called_once_with(app, user, '/api/v1/accounts/search', {'q': 'blixa'}) mock_get.assert_called_once_with(app, user, '/api/v2/search', {'q': 'blixa', 'type': 'accounts', 'resolve': True})
assert "Account not found" == str(ex.value) assert "Account not found" == str(ex.value)
@ -536,33 +560,32 @@ def test_notifications(mock_get, capsys):
out, err = capsys.readouterr() out, err = capsys.readouterr()
out = uncolorize(out) out = uncolorize(out)
width = 100
assert not err assert not err
assert out == "\n".join([ assert out == "\n".join([
"" * width, "───────────────────────────────────────────────────────────────────────────────────────────────────",
"Frank Zappa @frank@zappa.social now follows you", "Frank Zappa @frank@zappa.social now follows you",
"" * width, "───────────────────────────────────────────────────────────────────────────────────────────────────",
"Dweezil Zappa @dweezil@zappa.social mentioned you in", "Dweezil Zappa @dweezil@zappa.social mentioned you in",
"Dweezil Zappa @dweezil@zappa.social 2017-04-12 15:53", "Dweezil Zappa @dweezil@zappa.social 2017-04-12 17:53 CEST",
"", "",
"We still have fans in 2017 @fan123", "We still have fans in 2017 @fan123",
"", "",
"ID 111111111111111111 ", "ID 111111111111111111 ",
"" * width, "───────────────────────────────────────────────────────────────────────────────────────────────────",
"Terry Bozzio @terry@bozzio.social reblogged your status", "Terry Bozzio @terry@bozzio.social reblogged your status",
"Zappa Fan @fan123@zappa-fans.social 1983-11-04 15:53", "Zappa Fan @fan123@zappa-fans.social 1983-11-04 16:53 CET",
"", "",
"The Black Page, a masterpiece", "The Black Page, a masterpiece",
"", "",
"ID 1234 ", "ID 1234 ",
"" * width, "───────────────────────────────────────────────────────────────────────────────────────────────────",
"Zappa Old Fan @fan9@zappa-fans.social favourited your status", "Zappa Old Fan @fan9@zappa-fans.social favourited your status",
"Zappa Fan @fan123@zappa-fans.social 1983-11-04 15:53", "Zappa Fan @fan123@zappa-fans.social 1983-11-04 16:53 CET",
"", "",
"The Black Page, a masterpiece", "The Black Page, a masterpiece",
"", "",
"ID 1234 ", "ID 1234 ",
"" * width, "───────────────────────────────────────────────────────────────────────────────────────────────────",
"", "",
]) ])