def test_search_perimeter_department(self): form = SiaeSearchForm({ "perimeter": "isere", "perimeter_name": "Isère (département)" }) perimeter = form.get_perimeter() qs = form.filter_queryset(perimeter) self.assertEqual(qs.count(), 6)
def test_search_perimeter_name_empty_but_perimeter_valid(self): form = SiaeSearchForm({ "perimeter": "auvergne-rhone-alpes-region", "perimeter_name": "" }) perimeter = form.get_perimeter() qs = form.filter_queryset(perimeter) self.assertEqual(qs.count(), 14) # perimeter filter is also ignored
def test_search_perimeter_region(self): form = SiaeSearchForm({ "perimeter": "auvergne-rhone-alpes-region", "perimeter_name": "Auvergne-Rhône-Alpes (région)" }) perimeter = form.get_perimeter() qs = form.filter_queryset(perimeter) self.assertEqual(qs.count(), 10)
def test_search_perimeter_name_empty(self): form = SiaeSearchForm({ "perimeter": "old-search", "perimeter_name": "" }) perimeter = form.get_perimeter() qs = form.filter_queryset(perimeter) self.assertEqual(qs.count(), 14)
def test_search_perimeter_name_not_empty_but_perimeter_name_valid(self): form = SiaeSearchForm({ "perimeter": "", "perimeter_name": "Auvergne-Rhône-Alpes (région)" }) perimeter = form.get_perimeter() qs = form.filter_queryset(perimeter) self.assertEqual(qs.count(), 14) # perimeter filter is also ignored self.assertFalse(form.is_valid()) self.assertIn("perimeter_name", form.errors.keys()) self.assertIn("Périmètre inconnu", form.errors["perimeter_name"][0])
def test_search_perimeter_name_not_empty(self): form = SiaeSearchForm({ "perimeter": "", "perimeter_name": "Old Search" }) perimeter = form.get_perimeter() qs = form.filter_queryset(perimeter) self.assertEqual(qs.count(), 14) self.assertFalse(form.is_valid()) self.assertIn("perimeter_name", form.errors.keys()) self.assertIn("Périmètre inconnu", form.errors["perimeter_name"][0])
def test_search_perimeter_city_2(self): """ We should return: - all the Siae exactly in this city+department (1 SIAE) + all the Siae with geo_range=GEO_RANGE_CUSTOM + coords in the geo_range_custom_distance range of Grenoble (1 SIAE: Chamrousse. Grenoble & La Tronche are outside) # noqa + all the Siae with geo_range=GEO_RANGE_DEPARTMENT + department=38 (1 SIAE) """ form = SiaeSearchForm({ "perimeter": "chamrousse-38", "perimeter_name": "Chamrousse (38)" }) perimeter = form.get_perimeter() qs = form.filter_queryset(perimeter) self.assertEqual(qs.count(), 0 + 1 + 1)
def handle(self, *args, **options): self.stdout.write("-" * 80) self.stdout.write("Task: export Siae list...") self.stdout.write("Step 1: fetching Siae list") filter_form = SiaeSearchForm({}) siae_list = filter_form.filter_queryset() self.stdout.write(f"Found {len(siae_list)} Siae") if options["format"] in ["csv", "all"]: self.stdout.write("Step 2: generating the CSV file") filename_with_extension = f"{FILENAME}.csv" file = open(filename_with_extension, "w") writer = csv.writer(file) export_siae_to_csv(writer, siae_list) file.close() self.stdout.write(f"Generated {filename_with_extension}") self.stdout.write("Step 3: uploading the CSV file to S3") self.upload_file_to_s3(filename_with_extension) if options["format"] in ["xls", "all"]: self.stdout.write("Step 2: generating the XLS file") filename_with_extension = f"{FILENAME}.xls" wb = export_siae_to_excel(siae_list) wb.save(filename_with_extension) self.stdout.write(f"Generated {filename_with_extension}") self.stdout.write("Step 3: uploading the XLS file to S3") self.upload_file_to_s3(filename_with_extension) # Step 4: delete local file(s) & previous S3 file(s) files_to_remove = glob.glob(f"{FILENAME}.*") for file_path in files_to_remove: os.remove(file_path) bucket.objects.filter(Prefix=f"{settings.SIAE_EXPORT_FOLDER_NAME}/{FILENAME_PREVIOUS}").delete()
def test_search_unknown_network_ignores_filter(self): form = SiaeSearchForm({"networks": "coucou"}) perimeter = form.get_perimeter() qs = form.filter_queryset(perimeter) self.assertEqual(qs.count(), 2)
def test_search_network(self): form = SiaeSearchForm({"networks": f"{self.network.slug}"}) perimeter = form.get_perimeter() qs = form.filter_queryset(perimeter) self.assertEqual(qs.count(), 1)
def test_search_network_empty(self): form = SiaeSearchForm({"networks": ""}) perimeter = form.get_perimeter() qs = form.filter_queryset(perimeter) self.assertEqual(qs.count(), 2)