Example #1
0
    def test_get_name_display_returns_name_that_contains_the_idx_display_of_the_watering_station(
            self, watering_station):
        formatter = WateringStationFormatter(watering_station)

        ret_val = formatter.get_name_display()

        assert '#1' in ret_val
Example #2
0
    def test_get_idx_display_returns_string_of_number_1_greater_than_actual_idx(
            self, watering_station):
        formatter = WateringStationFormatter(watering_station)

        ret_val = formatter.get_idx_display()

        assert ret_val == '1'
Example #3
0
    def get_plant_type_display_returns_correct_plant_type_string(
            self, watering_station_factory, plant_type, expected):
        formatter = WateringStationFormatter(
            watering_station_factory.build(plant_type=plant_type))

        ret_val = formatter.get_plant_type_display()

        assert ret_val == expected
Example #4
0
    def test_get_status_badge_class_returns_the_correct_class(
            self, watering_station_factory, status, expected):
        formatter = WateringStationFormatter(
            watering_station_factory.build(status=status))

        ret_val = formatter.get_status_badge_class()

        assert ret_val == expected
Example #5
0
    def test_get_status_display_returns_correct_string(
            self, watering_station_factory, status, expected):
        formatter = WateringStationFormatter(
            watering_station_factory.build(status=status))

        ret_val = formatter.get_status_display()

        assert ret_val == expected
Example #6
0
    def test_get_watering_duration_display_calls_format_duration_and_returns_its_return_value(
            self, mock_format_duration, watering_station_factory):
        watering_station = watering_station_factory.build(
            watering_duration=timedelta(minutes=1))
        formatter = WateringStationFormatter(watering_station)

        ret_val = formatter.get_watering_duration_display()

        mock_format_duration.assert_called_once_with(
            watering_station.watering_duration.total_seconds())
        assert ret_val == mock_format_duration.return_value
Example #7
0
    def test_get_status_element_return_value_contains_status_display_and_badge_classes(
            self, watering_station_factory):
        formatter = WateringStationFormatter(watering_station_factory.build())
        ret1 = 'ret1'
        ret2 = 'ret2'
        formatter.get_status_display = Mock(return_value=ret1)
        formatter.get_status_badge_class = Mock(return_value=ret2)

        ret_val = formatter.get_status_element()

        assert formatter.get_status_display.return_value in ret_val
        assert formatter.get_status_badge_class.return_value in ret_val
Example #8
0
 def is_displaying_data_for_watering_station(self, watering_station):
     formatter = WateringStationFormatter(watering_station)
     return all([
         self.get_idx() == formatter.idx,
         self.get_plant_type() == formatter.plant_type,
         self.get_status() == formatter.status,
         self.get_moisture_threshold() == str(formatter.moisture_threshold),
         self.get_watering_duration() == formatter.watering_duration
     ])
Example #9
0
 def get(self, request: http.HttpRequest, garden_pk: int,
         ws_pk: int) -> http.HttpResponse:
     try:
         garden = request.user.gardens.get(pk=garden_pk)
     except Garden.DoesNotExist:
         raise Http404()
     else:
         watering_station = garden.watering_stations.get(pk=ws_pk)
         return render(request,
                       'watering_station_detail.html',
                       context={
                           'watering_station':
                           WateringStationFormatter(watering_station)
                       })
Example #10
0
 def is_table_row_displaying_data_for_watering_station(
         self, row, watering_station):
     formatter = WateringStationFormatter(watering_station)
     return all([
         self.get_watering_station_field_value(row, '#') == formatter.idx,
         self.get_watering_station_field_value(
             row, 'Plant Type') == formatter.plant_type,
         self.get_watering_station_field_value(
             row, 'Status') == formatter.status,
         self.get_watering_station_field_value(
             row,
             'Moisture Threshold') == str(formatter.moisture_threshold),
         self.get_watering_station_field_value(
             row, 'Watering Duration') == formatter.watering_duration
     ])
Example #11
0
 def get_formatter(self):
     return WateringStationFormatter(self)
Example #12
0
 def get_watering_station_formatters(self):
     for watering_station in self.watering_stations.all():
         yield WateringStationFormatter(watering_station)