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'))
示例#2
0
    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)
示例#3
0
    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()
示例#4
0
    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()
示例#5
0
    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)
示例#6
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)
示例#7
0
    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))
示例#8
0
    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))
示例#9
0
    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'))
示例#10
0
    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
示例#11
0
    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))
示例#12
0
    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))
示例#13
0
    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