def test_post_actions(self, mock): """Test post actions.""" mock.post(DAJAXICE_ENDPOINT, text=load_fixture('get_cu_and_fu_status.json')) mock.get(HOME_ENDPOINT, text=load_fixture('home.html')) mock.post(SETUP_ENDPOINT) controller = self.rdy.controller controller.update() self.assertIsNone(setattr(controller, 'name', 'test'))
def setUp(self, mock): """Initialize rdy object for unittests.""" from hydrawiser.core import Hydrawiser mock.get(STATUS_SCHEDULE, text=load_fixture('statusschedule.json')) mock.get(CUSTOMER_DETAILS, text=load_fixture('customerdetails.json')) mock.get(SET_ZONE, text=load_fixture('setzone.json')) # initialize self.rdy object self.rdy = Hydrawiser(GOOD_API_KEY)
def test_post_actions(self, mock): """Test request actions.""" mock.get(STATUS_ENDPOINT, text=load_fixture('get_cu_and_fu_status.json')) mock.get(HOME_ENDPOINT, text=load_fixture('home.html')) mock.post(SETUP_ENDPOINT) mock.get(SETUP_ENDPOINT) faucet = self.rdy.controller.faucet self.assertIsNone(setattr(faucet, 'name', 'test')) faucet.update()
def setUp(self, mock): """Initialize rdy object for unittests.""" from raincloudy.core import RainCloudy mock.get(LOGIN_ENDPOINT, text=load_fixture('home.html')) mock.post(LOGIN_ENDPOINT, text=load_fixture('home.html')) mock.post(DAJAXICE_ENDPOINT, text=load_fixture('get_cu_and_fu_status.json')) mock.get(HOME_ENDPOINT, text=load_fixture('home.html')) # initialize self.rdy object self.rdy = RainCloudy(USERNAME, PASSWORD, ssl_warnings=False) self.rdy.update()
def test_time_remaining(self, mock): """ Test is proper time is returned """ mock.get(STATUS_SCHEDULE, text=load_fixture('iswatering.json')) mock.get(CUSTOMER_DETAILS, text=load_fixture('customerdetails.json')) # Test if checking zone # self.assertIsNone(self.rdy.time_remaining(-1)) self.assertIsNone(self.rdy.time_remaining(self.rdy.num_relays)) # Fixture has zone 3 running with 297 seconds remaining. self.assertEqual(self.rdy.time_remaining(3), 297) self.assertEqual(self.rdy.time_remaining(2), 0)
def test_serial_finder(self): """Test serial finder method.""" from raincloudy.helpers import serial_finder self.assertRaises(TypeError, serial_finder, None) broken_html = generate_soup_html(load_fixture('home_broken.html')) self.assertRaises(RainCloudyException, serial_finder, broken_html)
def test_find_zone_name(self): """test find_zone_name method.""" from raincloudy.helpers import find_zone_name self.assertRaises(TypeError, find_zone_name, None, 1) # test when zone name is not found broken_html = generate_soup_html(load_fixture('home_broken.html')) self.assertIsNone(find_zone_name(broken_html, 1))
def test_run_zone(self, mock): """ Test the run operations. """ mock.get(SET_ZONE, text=load_fixture('setzone.json')) self.assertIsNone(self.rdy.run_zone(1, -1)) self.assertIsNone(self.rdy.run_zone(1, len(self.rdy.relays))) self.assertIsNotNone(self.rdy.run_zone(1)) self.assertIsNotNone(self.rdy.run_zone(0)) self.assertIsNotNone(self.rdy.run_zone(0, 1))
def test_find_controller_or_faucet_name(self): """Test find_controller_or_faucet_name method.""" from raincloudy.helpers import find_controller_or_faucet_name as fcfn self.assertRaises(TypeError, fcfn, None, None) self.assertRaises(TypeError, fcfn, self.rdy.html['home'], None) # test when controller is not found broken_html = generate_soup_html(load_fixture('home_broken.html')) self.assertIsNone(fcfn(broken_html, 'controller'))
def test_list_running_zones(self, mock): """ Test to see if running zones are listed. """ # Check that zone 3 is watterting using iswaterting.json. mock.get(STATUS_SCHEDULE, text=load_fixture('iswatering.json')) mock.get(CUSTOMER_DETAILS, text=load_fixture('customerdetails.json')) assert self.rdy.list_running_zones() == 3 # Check that no zones are waterting using donewatering.json. # In this case running: [] is in the json results. mock.get(STATUS_SCHEDULE, text=load_fixture('donewatering.json')) assert self.rdy.list_running_zones() is None # Check that no zones are waterting using donewatering.json. # In this case running: [] is NOT in the json results. mock.get(STATUS_SCHEDULE, text=load_fixture('donewatering_2.json')) assert self.rdy.list_running_zones() is None
def test_suspend_zone(self, mock): """ Tests the suspend operations. """ mock.get(SET_ZONE, text=load_fixture('setzone.json')) self.assertIsNotNone(self.rdy.suspend_zone(1)) self.assertIsNotNone(self.rdy.suspend_zone(-1)) self.assertIsNotNone(self.rdy.suspend_zone(0)) self.assertIsNone(self.rdy.suspend_zone(1, -1)) self.assertIsNone(self.rdy.suspend_zone(1, 6)) self.assertIsNotNone(self.rdy.suspend_zone(1, 1))
def test_post_actions(self, mock): """Test post actions.""" mock.get(STATUS_ENDPOINT, text=load_fixture('get_cu_and_fu_status.json')) mock.get(HOME_ENDPOINT, text=load_fixture('home.html')) mock.post(SETUP_ENDPOINT) mock.post(HOME_ENDPOINT, text=load_fixture('home.html')) zone = self.rdy.controller.faucet.zone1 zone.update() self.assertIsNone(setattr(zone, 'name', 'test')) self.assertIsNone(setattr(zone, 'watering_time', 0)) self.assertIsNone(setattr(zone, 'watering_time', 'on')) self.assertIsNone(setattr(zone, 'rain_delay', 0)) self.assertIsNone(setattr(zone, 'rain_delay', 1)) self.assertIsNone(setattr(zone, 'rain_delay', 2)) self.assertIsNone(setattr(zone, 'auto_watering', False))
def test_is_zone_running(self, mock): """ Test if proper zone is returned """ # Check if zone 3 is watering. mock.get(STATUS_SCHEDULE, text=load_fixture('iswatering.json')) mock.get(CUSTOMER_DETAILS, text=load_fixture('customerdetails.json')) assert self.rdy.is_zone_running(3) is True assert self.rdy.is_zone_running(0) is False # Check that no zones are waterting using donewatering.json. # In this case running: [] is in the json results. mock.get(STATUS_SCHEDULE, text=load_fixture('donewatering.json')) assert self.rdy.is_zone_running(3) is False # Check that no zones are waterting using donewatering.json. # In this case running: [] is NOT in the json results. mock.get(STATUS_SCHEDULE, text=load_fixture('donewatering_2.json')) assert self.rdy.is_zone_running(3) is False