2017-01-09 18:13:37 +01:00
|
|
|
import pytest
|
|
|
|
from six import BytesIO
|
|
|
|
from thefuck.rules.ifconfig_device_not_found import match, get_new_command
|
2017-08-31 17:58:56 +02:00
|
|
|
from thefuck.types import Command
|
2017-01-09 18:13:37 +01:00
|
|
|
|
|
|
|
|
2017-08-31 17:58:56 +02:00
|
|
|
output = '{}: error fetching interface information: Device not found'
|
2017-01-09 18:13:37 +01:00
|
|
|
|
|
|
|
stdout = b'''
|
|
|
|
wlp2s0 Link encap:Ethernet HWaddr 5c:51:4f:7c:58:5d
|
|
|
|
inet addr:192.168.0.103 Bcast:192.168.0.255 Mask:255.255.255.0
|
|
|
|
inet6 addr: fe80::be23:69b9:96d2:6d39/64 Scope:Link
|
|
|
|
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
|
|
|
|
RX packets:23581604 errors:0 dropped:0 overruns:0 frame:0
|
|
|
|
TX packets:17017655 errors:0 dropped:0 overruns:0 carrier:0
|
|
|
|
collisions:0 txqueuelen:1000
|
|
|
|
RX bytes:16148429061 (16.1 GB) TX bytes:7067533695 (7.0 GB)
|
|
|
|
'''
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.fixture(autouse=True)
|
|
|
|
def ifconfig(mocker):
|
|
|
|
mock = mocker.patch(
|
|
|
|
'thefuck.rules.ifconfig_device_not_found.subprocess.Popen')
|
|
|
|
mock.return_value.stdout = BytesIO(stdout)
|
|
|
|
return mock
|
|
|
|
|
|
|
|
|
2017-08-31 17:58:56 +02:00
|
|
|
@pytest.mark.parametrize('script, output', [
|
|
|
|
('ifconfig wlan0', output.format('wlan0')),
|
|
|
|
('ifconfig -s eth0', output.format('eth0')),
|
2017-01-09 18:13:37 +01:00
|
|
|
])
|
2017-08-31 17:58:56 +02:00
|
|
|
def test_match(script, output):
|
|
|
|
assert match(Command(script, output))
|
2017-01-09 18:13:37 +01:00
|
|
|
|
|
|
|
|
2017-08-31 17:58:56 +02:00
|
|
|
@pytest.mark.parametrize('script, output', [
|
2017-01-09 18:13:37 +01:00
|
|
|
('config wlan0',
|
|
|
|
'wlan0: error fetching interface information: Device not found'),
|
|
|
|
('ifconfig eth0', ''),
|
|
|
|
])
|
2017-08-31 17:58:56 +02:00
|
|
|
def test_not_match(script, output):
|
|
|
|
assert not match(Command(script, output))
|
2017-01-09 18:13:37 +01:00
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.parametrize('script, result', [
|
|
|
|
('ifconfig wlan0', ['ifconfig wlp2s0']),
|
|
|
|
('ifconfig -s wlan0', ['ifconfig -s wlp2s0']),
|
|
|
|
])
|
|
|
|
def test_get_new_comman(script, result):
|
|
|
|
new_command = get_new_command(
|
2017-08-31 17:58:56 +02:00
|
|
|
Command(script, output.format('wlan0')))
|
2017-01-09 18:13:37 +01:00
|
|
|
assert new_command == result
|