diff --git a/.coveragerc b/.coveragerc deleted file mode 100644 index fecdbb13..00000000 --- a/.coveragerc +++ /dev/null @@ -1,28 +0,0 @@ -# .coveragerc to control coverage.py -[run] -branch = True -source = src -# omit = bad_file.py - -[paths] -source = - src/ - */site-packages/ - -[report] -# Regexes for lines to exclude from consideration -exclude_lines = - # Have to re-enable the standard pragma - pragma: no cover - - # Don't complain about missing debug-only code: - def __repr__ - if self\.debug - - # Don't complain if tests don't hit defensive assertion code: - raise AssertionError - raise NotImplementedError - - # Don't complain if non-runnable code isn't run: - if 0: - if __name__ == .__main__.: diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 00000000..95f4b45e --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,37 @@ +name: Build +on: + push: + branches: + - main + pull_request: + types: [opened, synchronize, reopened] +jobs: + sonarcloud: + name: SonarCloud + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Setup Python + uses: actions/setup-python@v2 + with: + python-version: '3.7' + - name: Version de Python + run: | + python --version + - name: Instalación de librerías y dependencias + run: | + python -m pip install --upgrade pip + pip install -r requirements.txt + - name: pruebas+coverage + id: pruebas + run: | + python -m coverage run -m unittest discover -s tests -v + coverage report + python -m coverage xml -i + - name: SonarCloud Scan + uses: SonarSource/sonarcloud-github-action@master + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml deleted file mode 100644 index bf66c587..00000000 --- a/.github/workflows/test.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: CI - -# Controls when the action will run. -on: - push: - branches: [ main ] - pull_request: - branches: [ main ] - -# A workflow run is made up of one or more jobs that can run sequentially or in parallel -jobs: - job1: - name: Pruebas - runs-on: ubuntu-latest - steps: - - name: Checkout de repositorio - uses: actions/checkout@v2 - - name: Configuración de entorno de python - uses: actions/setup-python@v2 - with: - python-version: '3.7' - - name: Instalación de librerías y dependencias - run: | - python -m pip install --upgrade pip - pip install -r requirements.txt - - name: Correr pruebas - id: correr-pruebas - run: python -m unittest discover -s tests diff --git a/.gitignore b/.gitignore index 38d9605f..3f98ee85 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,5 @@ src/modelo/__pycache__/* src/logica/__pycache__/* src/vista/__pycache__/* venv/* +tests/__pycache__/* +aplicacion.sqlite diff --git a/sonar-project.properties b/sonar-project.properties new file mode 100644 index 00000000..bcc8addd --- /dev/null +++ b/sonar-project.properties @@ -0,0 +1,16 @@ +sonar.projectKey=tom-uniandes_TutorialCancionesTags +sonar.organization=tom-uniandes + +sonar.coverage.exclusions=**tests/**,**src/vista/**,**src/recursos/**,**docs/**,**setup.py** +sonar.python.coverage.reportPaths=coverage.xml + +# This is the name and version displayed in the SonarCloud UI. +#sonar.projectName=TutorialCancionesTags +#sonar.projectVersion=1.0 + + +# Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows. +#sonar.sources=. + +# Encoding of the source code. Default is default system encoding +#sonar.sourceEncoding=UTF-8 \ No newline at end of file diff --git a/src/logica/coleccion.py b/src/logica/coleccion.py index a7d9d634..ad2a3749 100644 --- a/src/logica/coleccion.py +++ b/src/logica/coleccion.py @@ -11,6 +11,7 @@ def __init__(self): def agregar_album(self, titulo, anio, descripcion, medio): busqueda = session.query(Album).filter(Album.titulo == titulo).all() + print("prueba") if len(busqueda) == 0: album = Album(titulo=titulo, ano=anio, descripcion=descripcion, medio=medio) session.add(album) @@ -147,7 +148,7 @@ def dar_cancion_por_id(self, cancion_id): def dar_interprete_por_id(self, interprete_id): return session.query(Interprete).filter_by(id=interprete_id).first().__dict__ - def dar_canciones_de_album(self, album_id): + def dar_canciones_de_album(self): return [] def buscar_canciones_por_titulo(self, cancion_titulo): diff --git a/src/vista/interfaz_coleccion.py b/src/vista/interfaz_coleccion.py index 14c6265c..c4411e5d 100644 --- a/src/vista/interfaz_coleccion.py +++ b/src/vista/interfaz_coleccion.py @@ -43,7 +43,7 @@ def mostrar_ventana_album(self, indice_album): ''' self.ventana_album.show() self.ventana_album.mostrar_album(self.logica.dar_album_por_id(indice_album)) - self.ventana_album.mostrar_canciones(self.logica.dar_canciones_de_album(indice_album)) + self.ventana_album.mostrar_canciones(self.logica.dar_canciones_de_album()) def mostrar_ventana_lista_canciones(self): ''' @@ -237,7 +237,7 @@ def asociar_cancion(self, id_album, id_cancion): ''' self.logica.asociar_cancion(id_cancion, id_album) self.ventana_album.mostrar_album(self.logica.dar_album_por_id(id_album)) - self.ventana_album.mostrar_canciones(self.logica.dar_canciones_de_album(id_album)) + self.ventana_album.mostrar_canciones(self.logica.dar_canciones_de_album()) def dar_canciones(self): '''