Beispiel #1
0
    def it_extracts_the_subtotal_values_to_help(self, _measure_prop_,
                                                measure_):
        _measure_prop_.return_value = measure_
        measure_.blocks = [None, np.arange(3)]
        order_helper = _SortByMeasureHelper(None, None)

        assert order_helper._subtotal_values.tolist() == [0, 1, 2]
Beispiel #2
0
    def but_it_raises_when_the_sort_measure_is_not_supported(
            self, request, _order_spec_prop_, order_spec_):
        _order_spec_prop_.return_value = order_spec_
        order_spec_.measure_keyname = "foobar"
        order_helper = _SortByMeasureHelper(None, None)

        with pytest.raises(ValueError) as e:
            order_helper._measure

        assert str(
            e.value
        ) == "sort-by-value for measure 'foobar' is not yet supported"
Beispiel #3
0
    def it_retrieves_the_right_measure_object_to_help(
        self,
        request,
        _order_spec_prop_,
        order_spec_,
        measure_,
        json_name,
        internal_name,
    ):
        measures_ = instance_mock(request, StripeMeasures)
        setattr(measures_, internal_name, measure_)
        _order_spec_prop_.return_value = order_spec_
        order_spec_.measure_keyname = json_name
        order_helper = _SortByMeasureHelper(None, measures_)

        assert order_helper._measure is measure_
Beispiel #4
0
    def it_computes_the_display_order_to_help(
        self,
        request,
        dimension_,
        _element_values_prop_,
        _subtotal_values_prop_,
        _empty_row_idxs_prop_,
        SortByValueCollator_,
    ):
        # --- return type of first two is ndarray in real life, but
        # --- assert_called_once_with() won't match on those, so use list instead.
        _element_values_prop_.return_value = [16, 3, 12]
        _subtotal_values_prop_.return_value = [15, 19]
        _empty_row_idxs_prop_.return_value = ()
        SortByValueCollator_.display_order.return_value = (-1, -2, 0, 2, 1)
        order_helper = _SortByMeasureHelper(dimension_, None)

        order = order_helper._display_order

        SortByValueCollator_.display_order.assert_called_once_with(
            dimension_, [16, 3, 12], [15, 19], ())
        assert order == (-1, -2, 0, 2, 1)
Beispiel #5
0
    def but_it_falls_back_to_payload_order_on_value_error(
        self,
        request,
        dimension_,
        _element_values_prop_,
        _subtotal_values_prop_,
        _empty_row_idxs_prop_,
        SortByValueCollator_,
    ):
        _element_values_prop_.return_value = None
        _subtotal_values_prop_.return_value = None
        _empty_row_idxs_prop_.return_value = (4, 2)
        SortByValueCollator_.display_order.side_effect = ValueError
        PayloadOrderCollator_ = class_mock(
            request, "cr.cube.stripe.assembler.PayloadOrderCollator")
        PayloadOrderCollator_.display_order.return_value = (1, 2, 3, 4)
        order_helper = _SortByMeasureHelper(dimension_, None)

        order = order_helper._display_order

        PayloadOrderCollator_.display_order.assert_called_once_with(
            dimension_, (4, 2))
        assert order == (1, 2, 3, 4)
Beispiel #6
0
    def it_extracts_the_element_values_to_help(self, _measure_prop_, measure_):
        _measure_prop_.return_value = measure_
        measure_.blocks = [np.arange(5), None]
        order_helper = _SortByMeasureHelper(None, None)

        assert order_helper._element_values.tolist() == [0, 1, 2, 3, 4]