def dispersion_notas(cod_materia): transformer = DataTransformer() provider = DataProvider() token = get_token(request) # Saco el token del request df = get_alumnos_de_materia_periodo(request, cod_materia) carrera = request.args.get('carrera') if carrera: alumnos_carrera_json = provider.get_alumnos_de_carrera(token, carrera) else: alumnos_carrera_json = provider.getCareerStudents(token) alumnos_carrera_df = transformer.transform_to_dataframe( alumnos_carrera_json) data = transformer.merge_materias_con_promedio(df, alumnos_carrera_df) # Itero para generar el json final resultado = [] for row in data.itertuples(): nota = getattr(row, 'nota') if nota: resultado.append({ "Promedio": getattr(row, 'promedio'), "Alumno": getattr(row, 'alumno'), "Nota": nota }) return json.dumps(resultado)
class ProviderTest(unittest.TestCase): def setUp(self): self.provider = DataProvider() self.mock_app = mock_app self.url = "localhost" self.port = 8008 def test_get_alumnos_de_carrera(self): with self.mock_app.run(self.url, self.port): token = self.provider.retrieve_token() alumnos = self.provider.get_alumnos_de_carrera(token, 'TEST') self.assertEqual(len(alumnos), 10) def test_get_cantidad_materias_necesarias(self): with self.mock_app.run(self.url, self.port): token = self.provider.retrieve_token() materias_necesarias = self.provider.get_cantidad_materias_necesarias(token, 'TEST', 2019) self.assertEqual(materias_necesarias['cantidad'], 40) def test_get_plan(self): with self.mock_app.run(self.url, self.port): token = self.provider.retrieve_token() materias = self.provider.get_plan(token, 'TEST', 2019) self.assertEqual(len(materias), 59) def test_get_inscriptos(self): with self.mock_app.run(self.url, self.port): token = self.provider.retrieve_token() inscriptos = self.provider.get_inscriptos(token, 'TEST') self.assertEqual(len(inscriptos), 10) def test_get_graduados(self): with self.mock_app.run(self.url, self.port): token = self.provider.retrieve_token() graduados = self.provider.get_graduados(token, 'TEST') self.assertEqual(len(graduados), 10) def test_get_graduados_anio(self): with self.mock_app.run(self.url, self.port): token = self.provider.retrieve_token() graduados = self.provider.get_graduados(token, 'TEST', 2019) self.assertEqual(graduados['cantidad'], 1) def test_get_ingresantes(self): with self.mock_app.run(self.url, self.port): token = self.provider.retrieve_token() ingresantes = self.provider.get_ingresantes(token, 'TEST') self.assertEqual(len(ingresantes), 10) def test_get_ingresantes_anio(self): with self.mock_app.run(self.url, self.port): token = self.provider.retrieve_token() ingresantes = self.provider.get_ingresantes(token, 'TEST', 2019) self.assertEqual(ingresantes['cantidad'], 2) def test_get_cursantes(self): with self.mock_app.run(self.url, self.port): token = self.provider.retrieve_token() cursantes = self.provider.get_cursantes(token, 'TEST') self.assertEqual(len(cursantes), 10) def test_get_cursantes_anio(self): with self.mock_app.run(self.url, self.port): token = self.provider.retrieve_token() cursantes = self.provider.get_cursantes(token, 'TEST', 2019) self.assertEqual(cursantes['cantidad'], 10) def test_get_postulantes(self): with self.mock_app.run(self.url, self.port): token = self.provider.retrieve_token() postulantes = self.provider.get_postulantes(token, 'TEST') self.assertEqual(len(postulantes), 10) def test_get_postulantes_anio(self): with self.mock_app.run(self.url, self.port): token = self.provider.retrieve_token() postulantes = self.provider.get_postulantes(token, 'TEST', 2019) self.assertEqual(postulantes['cantidad'], 3)