Inline method refactoring inserts an unexpected argument
jonhnanthan opened this issue · comments
Inline method refactoring inserts an unexpected argument in the method call.
Steps to reproduce the behavior:
- Code before refactoring:
structure:
-- main
---- __init__.py
---- blob.py
-- test
---- __init__.py
---- test.py
blob.py:
class Word(str):
def translate_to(self, source, from_lang='auto', to_lang='en', host=None):
pass
def translate(self, from_lang='auto', to="en"):
return self.translate_to('string', from_lang=from_lang, to_lang=to)
test.py:
import main as tb
from unittest import TestCase
class WordTest(TestCase):
def test_translate(self, mock_translate):
mock_translate.return_value = 'gato'
assert_equal(tb.Word("cat").translate(to="es"), "gato")
-
Apply the Inline Method refactoring to the 'Word.translate' in 'blob.py'
-
Expected code after refactoring:
blob.py:
class Word(str):
def translate_to(self, source, from_lang='auto', to_lang='en', host=None):
pass
test.py:
import main as tb
from unittest import TestCase
class WordTest(TestCase):
def test_translate(self, mock_translate):
mock_translate.return_value = 'gato'
assert_equal(tb.Word("cat").translate_to('string', __0__from_lang='auto', to_lang="es"), "gato")