CLI: reject invalid player seek and volume values before connecting

Abierto Apto para principiantes
#87 1 comentario 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

  • #90 de @bfs2021 — cerrado sin fusionar

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
75/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
python
Área
cli

Línea de trabajo

Empieza en el análisis de argumentos de la CLI para los subcomandos spotapi player seek y spotapi player volume, y lee las comprobaciones de rango existentes en Player.seek() y Player.volume() para usar sus mismos límites. Añade validadores de tipo pequeños con argparse que rechacen valores negativos de seek y volúmenes fuera de 0-100 con código de salida 2, manteniendo 0 y 100 como válidos. Está terminado cuando las pruebas sin conexión cubren seek negativo, volumen por debajo de cero, volumen por encima de 100 y ambos límites, y el issue pide comentar antes de empezar para evitar trabajo duplicado.

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

Descripción

bug good first issue

Problem

The Python player API correctly rejects negative seek positions and volume values outside 0–100. The CLI currently parses both as unrestricted integers, so obviously invalid input can reach account/session setup before producing an error.

Proposed change

Validate these values during argument parsing:

  • spotapi player seek MILLISECONDS: integer greater than or equal to zero.
  • spotapi player volume PERCENT: integer from zero through 100.

Acceptance criteria

  • Invalid values fail through argparse with a clear range message and exit status 2.
  • Invalid input is rejected before reading account state or opening a Spotify connection.
  • Boundary values 0 and 100 remain valid where applicable.
  • Existing valid commands retain their current behavior.
  • Offline tests cover negative seek, volume below zero, volume above 100, and boundaries.

Scope

Keep validation helpers small and local to the CLI. The existing validation inside Player.seek() and Player.volume() must remain as the library-level safety boundary.

Comment before starting so duplicate work can be avoided.

Lenguaje dominante
Python
Estrellas
493
Forks
40
Merge medio
5 min
PR fusionados (30 d)
1

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

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.

Más de Aran404/SpotAPI

Todos los issues de Aran404/SpotAPI

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.