Testing Heroku Command Correction Implementation in thefuck
This test suite validates the Heroku command correction functionality in thefuck, specifically testing the behavior when users enter invalid Heroku CLI commands. It ensures the application correctly identifies and suggests proper command alternatives.
Test Coverage Overview
Implementation Analysis
Technical Details
Best Practices Demonstrated
nvbn/thefuck
tests/rules/test_heroku_not_command.py
# -*- coding: utf-8 -*-
import pytest
from thefuck.types import Command
from thefuck.rules.heroku_not_command import match, get_new_command
suggest_output = '''
▸ log is not a heroku command.
▸ Perhaps you meant logs?
▸ Run heroku _ to run heroku logs.
▸ Run heroku help for a list of available commands.'''
@pytest.mark.parametrize('cmd', ['log'])
def test_match(cmd):
assert match(
Command('heroku {}'.format(cmd), suggest_output))
@pytest.mark.parametrize('script, output', [
('cat log', suggest_output)])
def test_not_match(script, output):
assert not match(Command(script, output))
@pytest.mark.parametrize('cmd, result', [
('log', 'heroku logs')])
def test_get_new_command(cmd, result):
command = Command('heroku {}'.format(cmd), suggest_output)
assert get_new_command(command) == result