def test_parse_should_group_indicator_indexes_when_appear_consecutively( self): result = parse_service_indicators_order("1.1, 2.1, 2.2, 3.1, 1.2") self.assertEqual(1, result[0][0]) self.assertEqual(2, result[1][0]) self.assertEqual(3, result[2][0]) self.assertEqual(1, result[3][0])
def list_by_service_id_and_indicators_order( self, service_id, indicators_order, count_indicator=None, count_category=None): if not indicators_order: return self.list_by_service_id( service_id, count_indicator, count_category) if count_indicator == 0 or count_category == 0: return [] if not is_valid_service_indicators_order(indicators_order): raise IndicadorsDataReporterException( "Indicators order is not valid") m = IndicadorsMatrixDataReporter(self.client, service_id) indicators = [] count_category_cur = 0 for indicator_i, categories_is in parse_service_indicators_order( indicators_order): categories = [] for category_i in categories_is: try: categories.append( self._category_to_dict(m[indicator_i, category_i])) count_category_cur += 1 if count_category and count_category_cur >= count_category: break except IndexError: logger.warning( "IndexError when accessing category {0}, {1} in " "list_by_service_id_and_indicators_order".format( indicator_i, category_i)) continue try: indicators.append( self._indicator_to_dict(m[indicator_i], categories)) if count_indicator and len(indicators) >= count_indicator: break if count_category and count_category_cur >= count_category: break except IndexError: logger.warning( "IndexError when accessing indicator {0} in " "list_by_service_id_and_indicators_order".format( indicator_i)) continue return indicators
def test_parse_should_group_indicator_indexes_when_appear_consecutively(self): result = parse_service_indicators_order("1.1, 2.1, 2.2, 3.1, 1.2") self.assertEqual(1, result[0][0]) self.assertEqual(2, result[1][0]) self.assertEqual(3, result[2][0]) self.assertEqual(1, result[3][0])
def test_parse_2_element_tuples_int_should_be_numbers_before_dots(self): result = parse_service_indicators_order("1.1, 2.1, 3.1") self.assertEqual(1, result[0][0]) self.assertEqual(2, result[1][0]) self.assertEqual(3, result[2][0])
def test_parse_2_element_tuples_should_contain_int_and_list(self): result = parse_service_indicators_order("1.1, 2.1, 3.1") for element in result: self.assertEqual(int, type(element[0])) self.assertEqual(list, type(element[1]))
def test_parse_should_return_list_of_2_element_tuples(self): result = parse_service_indicators_order("1.1, 2.1, 3.1") for element in result: self.assertEqual(tuple, type(element)) self.assertEqual(2, len(element))
def test_parse_should_return_list_of_n_elements_when_n_indicator_items(self): result = parse_service_indicators_order("1.1, 2.1, 3.1") self.assertEqual(3, len(result))
def test_parse_should_return_empty_list_when_order_empty(self): result = parse_service_indicators_order("") self.assertEqual([], result)
def test_parse_should_group_category_indexes_by_indicator_index(self): result = parse_service_indicators_order("1.1, 1.1, 3.1, 2.1, 2.2, 1.2") self.assertListEqual([1, 1], result[0][1]) self.assertListEqual([1], result[1][1]) self.assertListEqual([1, 2], result[2][1]) self.assertListEqual([2], result[3][1])
def test_parse_should_return_list_of_n_elements_when_n_indicator_items( self): result = parse_service_indicators_order("1.1, 2.1, 3.1") self.assertEqual(3, len(result))
def test_parse_should_return_list(self): result = parse_service_indicators_order("1.1, 2.1, 3.1") self.assertEqual(list, type(result))