コード例 #1
0
    def setUp(self):
        t_model = TransductorModel()
        t_model.name = "TR 4020"
        t_model.transport_protocol = "UDP"
        t_model.serial_protocol = "Mosbus RTU"
        t_model.measurements_type = "EnergyMeasurements"
        t_model.register_addresses = [[68, 0], [70, 1]]
        t_model.save()

        self.t_model = t_model
コード例 #2
0
    def setUp(self):
        HOST, PORT = "localhost", 9999

        # Creating Transductor Model and Energy Transductor
        t_model = TransductorModel()
        t_model.name = "TR 4020"
        t_model.transport_protocol = "UDP"
        t_model.serial_protocol = "Modbus RTU"
        t_model.register_addresses = [[4, 0], [68, 1]]
        t_model.save()

        transductor = EnergyTransductor()
        transductor.serie_number = "1"
        transductor.description = "Test"
        transductor.model = t_model
        transductor.ip_address = HOST
        transductor.save()

        # Setting instance attributes
        self.t_model = t_model
        self.transductor = transductor
        self.modbus_rtu = ModbusRTU(self.transductor)
        self.udp_protocol = UdpProtocol(serial_protocol=self.modbus_rtu,
                                        timeout=0.5,
                                        port=9999)

        # Starting UDP server via thread
        self.server = SocketServer.UDPServer((HOST, PORT), UDPHandler)
        self.server_thread = threading.Thread(target=self.server.serve_forever)
        self.server_thread.start()
コード例 #3
0
    def test_change_transductor_model(self):
        t_model_1 = self.t_model

        transductor = self.create_energy_transductor(1, "Test",
                                                     "111.111.111.111",
                                                     t_model_1)

        t_model_2 = TransductorModel()
        t_model_2.name = "Transductor Model 2"
        t_model_2.transport_protocol = "TCP/IP"
        t_model_2.serial_protocol = "Mosbus"
        t_model_2.register_addresses = [[100, 0], [105, 1]]
        t_model_2.save()

        url = reverse('transductor:edit',
                      kwargs={'transductor_id': transductor.id})

        params = {
            'serie_number': 2,
            'ip_address': '222.222.222.222',
            'description': 'Another Test',
            'model': t_model_2.id
        }

        self.client.post(url, params)

        transductor = EnergyTransductor.objects.get(
            ip_address='222.222.222.222')

        self.assertEqual(2, transductor.serie_number)
        self.assertEqual("Another Test", transductor.description)
        self.assertEqual(t_model_2, transductor.model)
コード例 #4
0
 def setUp(self):
     t_model = TransductorModel()
     t_model.name = "TR 4020"
     t_model.internet_protocol = "UDP"
     t_model.serial_protocol = "Modbus RTU"
     t_model.register_addresses = [68, 70, 72, 74, 76, 78, 80, 82, 84, 88, 90, 92]
     t_model.save()
コード例 #5
0
    def setUp(self):
        t_model = TransductorModel()
        t_model.name = "TR 4020"
        t_model.internet_protocol = "UDP"
        t_model.serial_protocol = "Modbus RTU"
        t_model.register_addresses = [68, 70, 72, 74, 76, 78,
                                      80, 82, 84, 88, 90, 92]
        t_model.save()

        transductor = EnergyTransductor()
        transductor.serie_number = "1"
        transductor.description = "Test"
        transductor.creation_date = timezone.now()
        transductor.model = t_model
        transductor.ip_address = "111.111.111.111"
        transductor.save()
コード例 #6
0
    def setUp(self):
        self.client = Client()

        address = [[68, 0], [70, 1]]
        self.t_model = TransductorModel(name="Test Name",
                                        transport_protocol="UDP",
                                        serial_protocol="Modbus RTU",
                                        register_addresses=address)
        self.t_model.save()
        self.e_transductor = EnergyTransductor(
            model=self.t_model,
            serie_number=1,
            ip_address="1.1.1.1",
            description="Energy Transductor Test",
            creation_date=timezone.now())

        self.e_transductor.save()
        self.e_measurements = EnergyMeasurements(
            transductor=self.e_transductor,
            voltage_a=122.875,
            voltage_b=122.784,
            voltage_c=121.611,
            current_a=22.831,
            current_b=17.187,
            current_c=3.950,
            active_power_a=2.794,
            active_power_b=1.972,
            active_power_c=3.950,
            reactive_power_a=-0.251,
            reactive_power_b=-0.752,
            reactive_power_c=-1.251,
            apparent_power_a=2.805,
            apparent_power_b=2.110,
            apparent_power_c=4.144,
            collection_minute=timezone.now().minute)
        self.e_measurements.save()
コード例 #7
0
    def setUp(self):
        t_model = TransductorModel()
        t_model.name = "TR 4020"
        t_model.transport_protocol = "UdpProtocol"
        t_model.serial_protocol = "ModbusRTU"
        t_model.register_addresses = [[4, 0], [68, 1]]
        t_model.measurements_type = "EnergyMeasurements"
        t_model.save()

        self.t_model = t_model

        transductor = EnergyTransductor()
        transductor.serie_number = "1"
        transductor.description = "Test"
        transductor.model = t_model
        transductor.ip_address = "111.111.111.111"
        transductor.broken = False
        transductor.save()

        self.transductor = transductor

        self.modbus_rtu = ModbusRTU(self.transductor)
コード例 #8
0
    def setUp(self):
        t_model = TransductorModel()
        t_model.name = "TR 4020"
        t_model.transport_protocol = "UDP"
        t_model.serial_protocol = "Modbus RTU"
        t_model.register_addresses = [[68, 0], [70, 1]]
        t_model.save()

        self.t_model = t_model

        transductor = EnergyTransductor()
        transductor.serie_number = "1"
        transductor.description = "Test"
        transductor.model = t_model
        transductor.ip_address = "111.111.111.111"
        transductor.save()

        self.transductor = transductor

        self.create_energy_measurements()
コード例 #9
0
    def test_raise_exception_on_create_messages_with_wrong_address(self):
        wrong_address = [[4, 2]]

        t_model = TransductorModel()
        t_model.name = "Test Model"
        t_model.transport_protocol = "UDP"
        t_model.serial_protocol = "Modbus RTU"
        t_model.register_addresses = wrong_address
        t_model.save()

        transductor = EnergyTransductor()
        transductor.serie_number = "2"
        transductor.description = "Test 2"
        transductor.creation_date = timezone.now()
        transductor.model = t_model
        transductor.ip_address = "222.222.222.222"
        transductor.save()

        modbus = ModbusRTU(transductor)

        with self.assertRaises(RegisterAddressException):
            modbus.create_messages()
コード例 #10
0
class TestReportView(unittest.TestCase):
    def setUp(self):
        self.client = Client()

        address = [[68, 0], [70, 1]]
        self.t_model = TransductorModel(name="Test Name",
                                        transport_protocol="UDP",
                                        serial_protocol="Modbus RTU",
                                        register_addresses=address)
        self.t_model.save()
        self.e_transductor = EnergyTransductor(
            model=self.t_model,
            serie_number=1,
            ip_address="1.1.1.1",
            description="Energy Transductor Test",
            creation_date=timezone.now())

        self.e_transductor.save()
        self.e_measurements = EnergyMeasurements(
            transductor=self.e_transductor,
            voltage_a=122.875,
            voltage_b=122.784,
            voltage_c=121.611,
            current_a=22.831,
            current_b=17.187,
            current_c=3.950,
            active_power_a=2.794,
            active_power_b=1.972,
            active_power_c=3.950,
            reactive_power_a=-0.251,
            reactive_power_b=-0.752,
            reactive_power_c=-1.251,
            apparent_power_a=2.805,
            apparent_power_b=2.110,
            apparent_power_c=4.144,
            collection_minute=timezone.now().minute)
        self.e_measurements.save()
        # self.assertEqual(1, 2)

    def tearDown(self):

        self.t_model.delete()
        self.e_transductor.delete()
        #self.e_measurements.delete()

    def test_getting_page_report(self):
        logged_in = self.client.login(username='******', password='******')
        response = self.client.get('/reports/report/' +
                                   str(self.e_transductor.id) + '/')
        print 'aqui'
        print(EnergyMeasurements.objects.all())

        self.assertEqual(200, response.status_code)

    def test_getting_wrong_page_report(self):
        response = self.client.post('/reports/reports/', {
            "username": '******',
            'password': '******'
        })

        self.assertEqual(404, response.status_code)

    def test_getting_pdf(self):
        logged_in = self.client.login(username='******', password='******')
        response = self.client.get('/reports/open_pdf/1/')

        self.assertEqual(200, response.status_code)

    def test_getting_wrong_page_filter(self):
        response = self.client.post('/reports/transductors_filt/', {
            "username": '******',
            'password': '******'
        })

        self.assertEqual(404, response.status_code)

    def test_getting_page_transductor_list(self):
        logged_in = self.client.login(username='******', password='******')
        response = self.client.get('/reports/transductor_list/')

        self.assertEqual(200, response.status_code)

    def test_getting_wrong_page_transductor_list(self):
        logged_in = self.client.login(username='******', password='******')
        response = self.client.get('/reports/transductores_list/')

        self.assertEqual(404, response.status_code)

    def test_getting_page_transductor_filter(self):
        logged_in = self.client.login(username='******', password='******')
        response = self.client.get('/reports/transductors_filter/')

        self.assertEqual(200, response.status_code)

    def test_getting_wrong_page_transductor_filter(self):
        logged_in = self.client.login(username='******', password='******')
        response = self.client.get('/reports/transductores_filter/')

        self.assertEqual(404, response.status_code)

    def test_getting_page_invoice(self):
        logged_in = self.client.login(username='******', password='******')
        response = self.client.get('/reports/invoice/' +
                                   str(self.e_transductor.id))

        self.assertEqual(301, response.status_code)

    def test_getting_wrong_page_invoice(self):
        logged_in = self.client.login(username='******', password='******')
        response = self.client.get('/reports/invoice/')

        self.assertEqual(404, response.status_code)

    def test_getting_page_charts(self):
        logged_in = self.client.login(username='******', password='******')
        response = self.client.get('/reports/return_chart/')

        self.assertEqual(200, response.status_code)

    def test_create_graphic(self):
        now = datetime.datetime.now()
        delta = datetime.timedelta(days=1)

        a = datetime.datetime.today()
        numdays = 3
        dateList = []
        for x in range(0, numdays):
            dateList.append(a - datetime.timedelta(days=x))

        self.graphic = views.create_graphic(
            path='src/report/static/currentGraphic1.png',
            array_date=[12, 13, 14],
            array_dateb=[56, 67, 78],
            array_datec=[34, 45, 56],
            array_data=dateList,
            label='Current')

        image = ("src/report/static/currentGraphic1.png")
        self.assertTrue(os.path.isfile(image))
        self.assertEqual(self.graphic, 'src/report/static/currentGraphic1.png')

    def test_create_generatePdf(self):
        views.generatePdf('1')
        pdf = ("src/report/static/Relatorio1.pdf")
        self.assertTrue(os.path.isfile(pdf))