Exemplo n.º 1
0
    def test_import_mc(self):
        model = models.Model.objects.all()[0]
        device = models.Device.objects.all()[0]
        sensor_type = models.SensorType.objects.all()[0]
        class_ = models.Class.objects.get(name="SPCH-13")
        installation = models.Installation.objects.get(name="64210836")

        count = models.Count.objects.create(
            start_service_date=datetime(2021, 9, 10),
            end_service_date=datetime(2021, 9, 21),
            start_process_date=datetime(2021, 9, 10),
            end_process_date=datetime(2021, 9, 21),
            start_put_date=datetime(2021, 9, 10),
            end_put_date=datetime(2021, 9, 21),
            id_model=model,
            id_device=device,
            id_sensor_type=sensor_type,
            id_class=class_,
            id_installation=installation,
        )

        importer.import_file(
            utils.test_data_path("64210836_TCHO-Capitaine.txt"), count)

        self.assertEqual(models.CountDetail.objects.count(), 25867)

        tz = pytz.timezone("Europe/Zurich")

        first = tz.normalize(models.CountDetail.objects.first().timestamp)
        last = tz.normalize(models.CountDetail.objects.last().timestamp)

        self.assertEqual(first, tz.localize(datetime(2021, 9, 10, 4, 16, 16)))
        self.assertEqual(last, tz.localize(datetime(2021, 9, 21, 8, 2, 15)))
Exemplo n.º 2
0
    def test_import_int2(self):
        model = models.Model.objects.all()[0]
        device = models.Device.objects.all()[0]
        sensor_type = models.SensorType.objects.all()[0]
        class_ = models.Class.objects.get(name="SWISS10")
        installation = models.Installation.objects.get(name="10020260")

        count = models.Count.objects.create(
            start_service_date=datetime(2018, 4, 13),
            end_service_date=datetime(2018, 5, 1),
            start_process_date=datetime(2018, 4, 13),
            end_process_date=datetime(2018, 5, 1),
            start_put_date=datetime(2018, 4, 13),
            end_put_date=datetime(2018, 5, 1),
            id_model=model,
            id_device=device,
            id_sensor_type=sensor_type,
            id_class=class_,
            id_installation=installation,
        )

        importer.import_file(utils.test_data_path("10020260.A01"), count)

        self.assertEqual(models.CountDetail.objects.count(), 22568)

        tz = pytz.timezone("Europe/Zurich")

        first = tz.normalize(models.CountDetail.objects.first().timestamp)
        last = tz.normalize(models.CountDetail.objects.last().timestamp)

        self.assertEqual(first, tz.localize(datetime(2018, 4, 13, 12, 0)))
        self.assertEqual(last, tz.localize(datetime(2018, 5, 1, 13, 0)))
Exemplo n.º 3
0
    def test_import_vbv1(self):
        model = models.Model.objects.all()[0]
        device = models.Device.objects.all()[0]
        sensor_type = models.SensorType.objects.all()[0]
        class_ = models.Class.objects.get(name="SWISS10")
        installation = models.Installation.objects.get(name="00056520")

        count = models.Count.objects.create(
            start_service_date=datetime(2021, 10, 15),
            end_service_date=datetime(2021, 10, 16),
            start_process_date=datetime(2021, 10, 15),
            end_process_date=datetime(2021, 10, 16),
            start_put_date=datetime(2021, 10, 15),
            end_put_date=datetime(2021, 10, 16),
            id_model=model,
            id_device=device,
            id_sensor_type=sensor_type,
            id_class=class_,
            id_installation=installation,
        )

        importer.import_file(utils.test_data_path("00056520.V01"), count)

        self.assertEqual(models.CountDetail.objects.count(), 18114)

        tz = pytz.timezone("Europe/Zurich")

        first = tz.normalize(models.CountDetail.objects.first().timestamp)
        last = tz.normalize(models.CountDetail.objects.last().timestamp)

        self.assertEqual(
            first, tz.localize(datetime(2021, 10, 15, 9, 46, 43, 500000)))
        self.assertEqual(
            last, tz.localize(datetime(2021, 10, 15, 23, 59, 54, 600000)))
Exemplo n.º 4
0
    def test_report(self):
        # Create count and import some data
        model = models.Model.objects.all()[0]
        device = models.Device.objects.all()[0]
        sensor_type = models.SensorType.objects.all()[0]
        class_ = models.Class.objects.get(name="SWISS10")
        installation = models.Installation.objects.get(name="00056520")
        tz = pytz.timezone("Europe/Zurich")

        count = models.Count.objects.create(
            start_service_date=tz.localize(datetime(2021, 10, 11)),
            end_service_date=tz.localize(datetime(2021, 10, 17)),
            start_process_date=tz.localize(datetime(2021, 10, 11)),
            end_process_date=tz.localize(datetime(2021, 10, 17)),
            start_put_date=tz.localize(datetime(2021, 10, 11)),
            end_put_date=tz.localize(datetime(2021, 10, 17)),
            id_model=model,
            id_device=device,
            id_sensor_type=sensor_type,
            id_class=class_,
            id_installation=installation,
        )

        importer.import_file(utils.test_data_path("00056520.V01"), count)
        importer.import_file(utils.test_data_path("00056520.V02"), count)

        report.prepare_reports("/tmp/", count)
Exemplo n.º 5
0
 def run(self):
     try:
         importer.import_file(self.file_path,
                              self.count,
                              callback_progress=self.setProgress)
         return True
     except Exception as e:
         self.exception = e
         raise e
Exemplo n.º 6
0
    def test_import_simple_int2(self):
        model = models.Model.objects.all()[0]
        device = models.Device.objects.all()[0]
        sensor_type = models.SensorType.objects.all()[0]
        class_ = models.Class.objects.get(name="SWISS10")
        installation = models.Installation.objects.get(name="64080011")

        count = models.Count.objects.create(
            start_service_date=datetime(2018, 9, 24),
            end_service_date=datetime(2018, 9, 24),
            start_process_date=datetime(2018, 9, 24),
            end_process_date=datetime(2018, 9, 24),
            start_put_date=datetime(2018, 9, 24),
            end_put_date=datetime(2018, 9, 24),
            id_model=model,
            id_device=device,
            id_sensor_type=sensor_type,
            id_class=class_,
            id_installation=installation,
        )

        importer.import_file(
            utils.test_data_path("simple_aggregate_multi_spec.i00"), count)

        self.assertEqual(models.CountDetail.objects.count(), 52)

        tz = pytz.timezone("Europe/Zurich")

        first = tz.normalize(models.CountDetail.objects.first().timestamp)
        last = tz.normalize(models.CountDetail.objects.last().timestamp)

        self.assertEqual(first, tz.localize(datetime(2018, 9, 24, 0, 0)))
        self.assertEqual(last, tz.localize(datetime(2018, 9, 24, 1, 0)))

        speed20 = models.CountDetail.objects.filter(speed=20)
        self.assertEqual(speed20[0].times, 3)
        self.assertEqual(speed20[1].times, 4)
Exemplo n.º 7
0
    def test_time_data(self):
        # Create count and import some data
        model = models.Model.objects.all()[0]
        device = models.Device.objects.all()[0]
        sensor_type = models.SensorType.objects.all()[0]
        class_ = models.Class.objects.get(name="SWISS10")
        installation = models.Installation.objects.get(name="00056520")
        tz = pytz.timezone("Europe/Zurich")

        count = models.Count.objects.create(
            start_service_date=tz.localize(datetime(2021, 10, 15)),
            end_service_date=tz.localize(datetime(2021, 10, 16)),
            start_process_date=tz.localize(datetime(2021, 10, 15)),
            end_process_date=tz.localize(datetime(2021, 10, 16)),
            start_put_date=tz.localize(datetime(2021, 10, 15)),
            end_put_date=tz.localize(datetime(2021, 10, 16)),
            id_model=model,
            id_device=device,
            id_sensor_type=sensor_type,
            id_class=class_,
            id_installation=installation,
        )

        importer.import_file(utils.test_data_path("00056520.V01"), count)

        self.assertEqual(models.CountDetail.objects.count(), 18114)

        section = models.Section.objects.filter(
            lane__id_installation__count=count).distinct()[0]

        df = statistics.get_time_data(count, section)

        self.assertEqual(df['thm'][0], 305)
        self.assertEqual(df['thm'][1], 1306)

        df, mean = statistics.get_day_data(count, section, direction=1)
        self.assertEqual(df['tj'][0], 9871)
        df, mean = statistics.get_day_data(count, section, direction=2)
        self.assertEqual(mean, 8243)

        df = statistics.get_category_data(
            count, section, status=definitions.IMPORT_STATUS_QUARANTINE)
        self.assertEqual(df['value'][0], 1)
        self.assertEqual(df['value'][1], 93)
        self.assertEqual(df['value'][2], 1)
        self.assertEqual(df['value'][3], 17315)
        self.assertEqual(df['value'][4], 16)
        self.assertEqual(df['value'][5], 570)
        self.assertEqual(df['value'][6], 15)
        self.assertEqual(df['value'][7], 4)
        self.assertEqual(df['value'][8], 70)
        self.assertEqual(df['value'][9], 12)
        self.assertEqual(df['value'][10], 17)

        df = statistics.get_speed_data(count, section)
        self.assertEqual(df['times'][0], 0)
        self.assertEqual(df['times'][1], 1)
        self.assertEqual(df['times'][2], 13)
        self.assertEqual(df['times'][3], 638)
        self.assertEqual(df['times'][4], 11331)
        self.assertEqual(df['times'][5], 5792)
        self.assertEqual(df['times'][6], 304)
        self.assertEqual(df['times'][7], 29)
        self.assertEqual(df['times'][8], 5)
        self.assertEqual(df['times'][9], 0)
        self.assertEqual(df['times'][10], 0)
        self.assertEqual(df['times'][11], 0)
        self.assertEqual(df['times'][12], 1)