`unittest.mock.Mock` does not allow name attribute to be mocked in constructor

Aberta
#95,078 4 comentários 3 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
3/5
Tempo estimado
1-2 dias
Facilidade para iniciantes
48/100
Tipo de issue
Bug
Clareza
Razoavelmente clara
Status de atividade
Estagnada
Stack de tecnologia
python
Domínio
testing-qa

Direção de pesquisa

Comece em Lib/unittest/mock.py, por volta das linhas 1236-1238, onde o tratamento do nome de Mock está implementado. Determine como os atributos de palavra-chave do construtor são separados do valor interno do nome e, em seguida, faça com que a conclusão signifique que Mock(name="name") exponha name como o atributo simulado sem perder o comportamento existente.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

stdlib type-feature

Bug report

Would like to set name attribute of a mocked object directly when creating Mock() object.

Currently, the workaround is to do:

from unittest.mock import Mock

obj = Mock(x=1, y="val")
obj.name = "name"

instead of directly assigning the attribute in the constructor.

Has been mentioned in the Stack Overflow community before in https://stackoverflow.com/questions/62552148/how-to-mock-name-attribute-with-unittest-mock-magicmock-or-mock-classes.

Affected code:
https://github.com/python/cpython/blob/4261b6bffc0b8bb5c6d4d80578a81b7520f4aefc/Lib/unittest/mock.py#L1236-L1238

A suggestion would be to rename the current name attribute to mock_name.

Linguagem predominante
Python
Estrelas
77.2k
Forks
36k
Merge médio
1d 9h
PRs com merge (30d)
558

Guia de contribuição

Abrir o guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de python/cpython

Todas as issues de python/cpython

Issues semelhantes

Mais issues de Python

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.