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)
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)
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 (
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):