Rename Method refactoring does not change the calls of the renamed method.
Mantenedores costumam responder em até 7 dias
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 35/100
Direção de pesquisa
Reproduce with the two-file example: main/blob.py defines WordList.count and test/test.py calls it, first with a positional argument and then with case_sensitive=True. Rename the method to start_index through rope's rename-method refactoring and check which call sites in the test are left unchanged. Done means every call to WordList.count in the test is renamed, matching the expected output in the issue. Finding those call sites depends on rope's type inference for subclasses of list, so start there.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Rename Method refactoring does not change the calls of the renamed method.
In the example, the call to the method in the test file must be renamed to the new name to avoid unexpected parameter calling the method from the superclass
- Steps to reproduce the behavior:
structure
-- main
---- blob.py
-- test
---- test.py
blob.py:
class WordList(list):
def count(self, strg, case_sensitive=False, *args, **kwargs):
return None
test.py:
from unittest import TestCase
from main import blobl as tb
class WordListTest(TestCase):
def test_count(self):
wl = tb.WordList(['monty', 'python', 'Python', 'Monty'])
self.assertEqual(wl.count('monty'), None)
self.assertEqual(wl.count('monty', case_sensitive=True), None)
-
Apply the Rename Method refactoring with the new name 'start_index' to the method 'WordList.count'
-
Expected code after refactoring:
structure:
-- main
---- blob.py
-- test
---- test.py
blob.py:
class WordList(list):
def start_index(self, strg, case_sensitive=False, *args, **kwargs):
return None
test.py:
from unittest import TestCase
from main import blobl as tb
class WordListTest(TestCase):
def test_count(self):
wl = tb.WordList(['monty', 'python', 'Python', 'Monty'])
self.assertEqual(wl.count('monty'), None)
self.assertEqual(wl.start_index('monty', case_sensitive=True), None)
- Not all uses of the touched method are changed
- Linguagem predominante
- Python
- Estrelas
- 2.2k
- Forks
- 197
- Merge médio
- 2d 13h
- PRs com merge (30d)
- 5
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Tem um modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de python-rope/rope
-
Dificuldade 1/5 1-3 horas Facilidade para iniciantes 88/100
python-rope/rope#927 ·
Mantenedores costumam responder em até 7 dias
-
Extract raises IndexError or ModuleSyntaxError instead of RefactoringError for an empty or whitespace-only regionTalvez já em andamento @aliassar assumiu há 1 dia. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
python-rope/rope#926 ·
Mantenedores costumam responder em até 7 dias
-
simplify.real_code blanks t-strings, so renames inside them edit the wrong offsetTalvez já em andamento @sean0407 assumiu há 11 dias. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 83/100
python-rope/rope#913 ·
Mantenedores costumam responder em até 7 dias
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 30/100
python-rope/rope#925 ·
Mantenedores costumam responder em até 7 dias
-
Extract method/variable and introduce parameter don't check whether the new name is already in useTalvez já em andamento @aliassar assumiu hoje. Aberta
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 62/100
python-rope/rope#924 · 1 comentário ·
Mantenedores costumam responder em até 7 dias
Todas as issues de python-rope/rope
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
autowarefoundation/autoware_carla_scenario#1485 ·
Mantenedores costumam responder em até 1 dia
-
needs-area-label
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 66/100
Mantenedores costumam responder em até 2 dias
-
enhancement good first issue
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 84/100
Official-Space-AI/OpenPhysGraspGen#114 ·
Mantenedores costumam responder em até 2 dias
-
changelog investigate
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 62/100
ramnes/notion-sdk-py#441 ·
-
copy_tree splits same-file errors into charactersTalvez já em andamento @Gambit-Checkmate assumiu hoje. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
Mantenedores costumam responder em até 14 dias