python / python/mypy

Support adding class variables to class through assignment

Abierto
#8,723 5 comentarios 19 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

feature priority-2-low
Lenguaje dominante
Python
Estrellas
20.6k
Forks
3.3k
Métricas de merge de PR
Métricas de PR pendientes

Descripción

Mypy supports adding items to self during test setUp, which is great. However in many cases it's useful to be able to add items to the class during setUpClass (or Django's setUpTestData).

import unittest

class Tests(unittest.TestCase):
    @classmethod
    def setUpClass(cls) -> None:
        cls.foo = 42  # "Type[Tests]" has no attribute "foo"

    def test_foo(self) -> None:
        print(self.foo)  # "Tests" has no attribute "foo"

Adding a ClassVar allows for a workaround to this, however it would be nice if that wasn't needed.

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Empieza rastreando cómo mypy gestiona las asignaciones a self en setUp y las declaraciones de variables de clase; después, inspecciona las pruebas que cubren ClassVar y los hooks de configuración de unittest. Define los diagnósticos esperados para cls.foo y self.foo en setUpClass o setUpTestData, y añade pruebas de regresión específicas que demuestren que las asignaciones compatibles ya no producen errores de atributo.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
python
Área
devtools
Tipo de issue
Nueva funcionalidad
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
30/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.