示例#1
0
 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)
示例#2
0
 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
示例#3
0
 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)
示例#4
0
 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)
示例#5
0
 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])
示例#6
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])
示例#7
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()
示例#9
0
 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)
示例#10
0
 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)
示例#11
0
 def test_search_network_empty(self):
     form = SiaeSearchForm({"networks": ""})
     perimeter = form.get_perimeter()
     qs = form.filter_queryset(perimeter)
     self.assertEqual(qs.count(), 2)