コード例 #1
0
class TestDisagDayGeneration(unittest.TestCase):
    def setUp(self):
        self.pw = Plotwatt(2517, "3b0f9e9a9d98137c")
        
        # clear any old meters
        for meter_id in self.pw.list_meters() :
            self.pw.delete_meter(meter_id)
    
    def test_list_and_create_meters(self):
        assert self.pw.list_meters() == []
        self.pw.create_meters(1)
        assert len(self.pw.list_meters()) == 1
    
    def test_push_readings(self):
        new_meter_ids = self.pw.create_meters(1)
        meter_id = self.pw.list_meters()[0]
        
        # testing the return value of create_meters against the return value of list_meters
        assert meter_id == new_meter_ids[0]
        assert len(new_meter_ids) == 1
        
        now = datetime.now()
        second = timedelta(seconds=1)
        self.pw.push_readings(meter_id, [1, 2, 3], [now, now + 1*second, now + 2*second])

        # overwrite old readings
        self.pw.push_readings(meter_id, [4, 5, 6], [now, now + 1*second, now + 2*second])

    def test_push_invalid_readings(self):
        self.pw.create_meters(1)
        meter_id = self.pw.list_meters()[0]
        
        now = datetime.now() + timedelta(days = 2)
        second = timedelta(seconds=1)
        try :
            self.pw.push_readings(meter_id, [1, 2, 3], [now, now + 1*second, now + 2*second])
            assert 'the previous line should have raised an error'
        except PlotwattError as e:
            assert 'Unprocessable' in str(e)
コード例 #2
0
ファイル: test.py プロジェクト: gamroos/plotwatt-api
class TestDisagDayGeneration(unittest.TestCase):
    def setUp(self):
        self.pw = Plotwatt(2517, "3b0f9e9a9d98137c")
        
        # clear any old meters
        for meter_id in self.pw.list_meters() :
            self.pw.delete_meter(meter_id)
    
    def test_list_and_create_meters(self):
        assert self.pw.list_meters() == []
        self.pw.create_meters(1)
        assert len(self.pw.list_meters()) == 1
    
    def test_push_readings(self):
        new_meter_ids = self.pw.create_meters(1)
        meter_id = self.pw.list_meters()[0]
        
        # testing the return value of create_meters against the return value of list_meters
        assert meter_id == new_meter_ids[0]
        assert len(new_meter_ids) == 1
        
        now = datetime.now()
        second = timedelta(seconds=1)
        self.pw.push_readings(meter_id, [1, 2, 3], [now, now + 1*second, now + 2*second])

        # overwrite old readings
        self.pw.push_readings(meter_id, [4, 5, 6], [now, now + 1*second, now + 2*second])

    def test_push_invalid_readings(self):
        self.pw.create_meters(1)
        meter_id = self.pw.list_meters()[0]
        
        now = datetime.now() + timedelta(days = 2)
        second = timedelta(seconds=1)
        try :
            self.pw.push_readings(meter_id, [1, 2, 3], [now, now + 1*second, now + 2*second])
            assert 'the previous line should have raised an error'
        except PlotwattError, e:
            assert 'Unprocessable' in str(e)
コード例 #3
0
ファイル: alertme.py プロジェクト: oliparson/alertme2plotwatt
        print 'start or end time not in ', utc_format, 'format'
        return -1

    # PlotWatt API
    pw = Plotwatt(PW_HOUSE_ID, PW_API_KEY)
    try:
        pw.list_meters()
    except urllib2.HTTPError, e:
        print 'bad PlotWatt credentials'
        return -1
    if not PW_METER_ID:
        print 'PlotWatt meter not specified'
        pw_meter_list = pw.list_meters()
        if len(pw_meter_list) == 0:
            print 'No PlotWatt meters found. Creating meter'
            pw_meter_list = pw.create_meters(1)
        PW_METER_ID = pw_meter_list[0]
        print 'Using PlotWatt meter ', PW_METER_ID

    # AlertMe API
    log_in_json = log_in(AM_USERNAME, AM_PASSWORD)
    if not log_in_json:
        print 'bad AlertMe credentials'
        return -1
    hub_id = str(log_in_json['hubIds'][0])
    hub_devices = query_hub_devices(AM_USERNAME, hub_id)
    for device in hub_devices:
        device_name = device['name']
        device_type = device['type']
        device_id = device['id']
        if device_type in DEVICE_CHANNELS.keys() and (
コード例 #4
0
ファイル: alertme.py プロジェクト: oliparson/alertme2plotwatt
        print 'start or end time not in ',utc_format,'format'
        return -1
    
    # PlotWatt API
    pw = Plotwatt(PW_HOUSE_ID, PW_API_KEY)
    try:
        pw.list_meters()
    except urllib2.HTTPError, e:
        print 'bad PlotWatt credentials'
        return -1
    if not PW_METER_ID:
        print 'PlotWatt meter not specified'
        pw_meter_list = pw.list_meters()
        if len(pw_meter_list) == 0:
            print 'No PlotWatt meters found. Creating meter'
            pw_meter_list = pw.create_meters(1)
        PW_METER_ID = pw_meter_list[0]
        print 'Using PlotWatt meter ', PW_METER_ID

    # AlertMe API
    log_in_json = log_in(AM_USERNAME, AM_PASSWORD)
    if not log_in_json:
        print 'bad AlertMe credentials'
        return -1
    hub_id = str(log_in_json['hubIds'][0])
    hub_devices = query_hub_devices(AM_USERNAME, hub_id)
    for device in hub_devices:
        device_name = device['name']
        device_type = device['type']
        device_id = device['id']
        if device_type in DEVICE_CHANNELS.keys() and ((not AM_DEVICE_NAME) or device_name == AM_DEVICE_NAME):