def test_lbsi_count_category_should_not_limit_if_not_specified(self): reporter = IndicadorsDataReporter( self.client, context=Mock(translate=lambda msgid: '')) count_indicator = 10 indicadors = reporter.list_by_service_id( 'mock-id', count_indicator=count_indicator) self.assertEqual(len(indicadors), 10)
def test_lbso_should_limit_categories_if_count_specified(self): reporter = IndicadorsDataReporter( self.client, context=Mock(translate=lambda msgid: '')) indicators = reporter.list_by_service_id_and_indicators_order( '3x2-service', indicators_order="3.2, 2.1, 1.2", count_category=1) total_categories = sum( [len(indicator['categories']) for indicator in indicators]) self.assertEqual(1, total_categories) indicators = reporter.list_by_service_id_and_indicators_order( '3x2-service', indicators_order="3.2, 2.1, 1.2", count_category=2) total_categories = sum( [len(indicator['categories']) for indicator in indicators]) self.assertEqual(2, total_categories) indicators = reporter.list_by_service_id_and_indicators_order( '3x2-service', indicators_order="3.2, 2.1, 1.2", count_category=3) total_categories = sum( [len(indicator['categories']) for indicator in indicators]) self.assertEqual(3, total_categories) indicators = reporter.list_by_service_id_and_indicators_order( '3x2-service', indicators_order="3.2, 2.1, 1.2", count_category=4) total_categories = sum( [len(indicator['categories']) for indicator in indicators]) self.assertEqual(3, total_categories)
def test_lbso_should_limit_indicators_if_count_specified(self): reporter = IndicadorsDataReporter( self.client, context=Mock(translate=lambda msgid: '')) indicators = reporter.list_by_service_id_and_indicators_order( '3x2-service', indicators_order="3.2, 2.1, 1.2", count_indicator=1) self.assertEqual(1, len(indicators)) self.assertEqual('indicator-3', indicators[0]['identifier']) indicators = reporter.list_by_service_id_and_indicators_order( '3x2-service', indicators_order="3.2, 2.1, 1.2", count_indicator=2) self.assertEqual(2, len(indicators)) self.assertEqual('indicator-3', indicators[0]['identifier']) self.assertEqual('indicator-2', indicators[1]['identifier']) indicators = reporter.list_by_service_id_and_indicators_order( '3x2-service', indicators_order="3.2, 2.1, 1.2", count_indicator=3) self.assertEqual(3, len(indicators)) self.assertEqual('indicator-3', indicators[0]['identifier']) self.assertEqual('indicator-2', indicators[1]['identifier']) self.assertEqual('indicator-1', indicators[2]['identifier']) indicators = reporter.list_by_service_id_and_indicators_order( '3x2-service', indicators_order="3.2, 2.1, 1.2", count_indicator=4) self.assertEqual(3, len(indicators)) self.assertEqual('indicator-3', indicators[0]['identifier']) self.assertEqual('indicator-2', indicators[1]['identifier']) self.assertEqual('indicator-1', indicators[2]['identifier'])
def test_lbso_should_return_empty_list_when_count_indicator_is_0(self): reporter = IndicadorsDataReporter(self.client) self.assertEqual( [], reporter.list_by_service_id_and_indicators_order( 'mock-id', indicators_order="1.1, 1.2, 2.1, 3.1", count_indicator=0))
def test_lbso_should_return_empty_list_when_count_indicator_is_0(self): reporter = IndicadorsDataReporter(self.client) self.assertEqual([], reporter.list_by_service_id_and_indicators_order( 'mock-id', indicators_order="1.1, 1.2, 2.1, 3.1", count_indicator=0))
def test_lbso_should_delegate_when_order_is_none(self): reporter = IndicadorsDataReporter(self.client) with patch('genweb.serveistic.data_access.indicadors.' 'IndicadorsDataReporter.list_by_service_id' ) as list_by_service_id: reporter.list_by_service_id_and_indicators_order( 'mock-id', indicators_order=None, count_indicator=10) self.assertTrue(list_by_service_id.called)
def test_lbso_should_raise_when_order_is_not_valid(self): reporter = IndicadorsDataReporter(self.client) with self.assertRaises(IndicadorsDataReporterException) as context: reporter.list_by_service_id_and_indicators_order( 'mock-id', indicators_order="1-1, 1-2, 2-1, 3-1", count_indicator=10) self.assertEqual( 'Indicators order is not valid', context.exception.message)
def test_lbso_should_return_empty_list_when_service_id_is_not_valid(self): reporter = IndicadorsDataReporter(self.client) self.assertEqual([], reporter.list_by_service_id_and_indicators_order( 'invalid-service', indicators_order="1.1, 1.2, 2.1, 3.1", count_indicator=3, count_category=0))
def test_lbso_should_delegate_when_order_is_none(self): reporter = IndicadorsDataReporter(self.client) with patch( 'genweb.serveistic.data_access.indicadors.' 'IndicadorsDataReporter.list_by_service_id') as list_by_service_id: reporter.list_by_service_id_and_indicators_order( 'mock-id', indicators_order=None, count_indicator=10) self.assertTrue(list_by_service_id.called)
def test_lbso_should_return_empty_list_when_service_id_is_not_valid(self): reporter = IndicadorsDataReporter(self.client) self.assertEqual( [], reporter.list_by_service_id_and_indicators_order( 'invalid-service', indicators_order="1.1, 1.2, 2.1, 3.1", count_indicator=3, count_category=0))
def test_lbso_should_raise_when_order_is_not_valid(self): reporter = IndicadorsDataReporter(self.client) with self.assertRaises(IndicadorsDataReporterException) as context: reporter.list_by_service_id_and_indicators_order( 'mock-id', indicators_order="1-1, 1-2, 2-1, 3-1", count_indicator=10) self.assertEqual('Indicators order is not valid', context.exception.message)
def test_lbso_should_only_return_valid_index_indicators_in_the_right_order(self): reporter = IndicadorsDataReporter( self.client, context=Mock(translate=lambda msgid: '')) indicators = reporter.list_by_service_id_and_indicators_order( '3x2-service', indicators_order="0.1, 0.2, 3.0, 3.1, 3.2, 3.3, 4.1, 4.2, 2.0") self.assertEqual(2, len(indicators)) self.assertEqual('indicator-3', indicators[0]['identifier']) self.assertEqual('indicator-2', indicators[1]['identifier'])
def test_lbso_should_only_return_valid_index_indicators_in_the_right_order( self): reporter = IndicadorsDataReporter( self.client, context=Mock(translate=lambda msgid: '')) indicators = reporter.list_by_service_id_and_indicators_order( '3x2-service', indicators_order="0.1, 0.2, 3.0, 3.1, 3.2, 3.3, 4.1, 4.2, 2.0") self.assertEqual(2, len(indicators)) self.assertEqual('indicator-3', indicators[0]['identifier']) self.assertEqual('indicator-2', indicators[1]['identifier'])
def test_lbso_count_category_should_not_limit_if_count_indicator_is_more_restrictive(self): reporter = IndicadorsDataReporter( self.client, context=Mock(translate=lambda msgid: '')) indicators = reporter.list_by_service_id_and_indicators_order( '3x2-service', indicators_order="3.2, 2.1, 1.2", count_indicator=2, count_category=3) self.assertEqual(2, len(indicators)) total_categories = sum( [len(indicator['categories']) for indicator in indicators]) self.assertEqual(2, total_categories)
def test_lbsi_count_category_should_not_limit_if_count_indicator_is_more_restrictive(self): reporter = IndicadorsDataReporter( self.client, context=Mock(translate=lambda msgid: '')) count_indicator = 1 count_category = 4 indicators = reporter.list_by_service_id( 'mock-id', count_indicator=count_indicator, count_category=count_category) total_categories = sum( [len(indicator['categories']) for indicator in indicators]) self.assertEqual(count_indicator, len(indicators)) self.assertLess(total_categories, count_category)
def test_lbsi_count_category_should_limit_if_specified(self): reporter = IndicadorsDataReporter( self.client, context=Mock(translate=lambda msgid: '')) count_indicator = 10 for count_category in (1, 3, 4): indicators = reporter.list_by_service_id( 'mock-id', count_indicator=count_indicator, count_category=count_category) total_indicators = len(indicators) total_categories = sum( [len(indicator['categories']) for indicator in indicators]) self.assertEqual(math.ceil(count_category / 3.0), total_indicators) self.assertEqual(count_category, total_categories)
def test_lbso_count_category_should_not_limit_if_count_indicator_is_more_restrictive( self): reporter = IndicadorsDataReporter( self.client, context=Mock(translate=lambda msgid: '')) indicators = reporter.list_by_service_id_and_indicators_order( '3x2-service', indicators_order="3.2, 2.1, 1.2", count_indicator=2, count_category=3) self.assertEqual(2, len(indicators)) total_categories = sum( [len(indicator['categories']) for indicator in indicators]) self.assertEqual(2, total_categories)
def test_lbsi_count_category_should_not_limit_if_count_indicator_is_more_restrictive( self): reporter = IndicadorsDataReporter( self.client, context=Mock(translate=lambda msgid: '')) count_indicator = 1 count_category = 4 indicators = reporter.list_by_service_id( 'mock-id', count_indicator=count_indicator, count_category=count_category) total_categories = sum( [len(indicator['categories']) for indicator in indicators]) self.assertEqual(count_indicator, len(indicators)) self.assertLess(total_categories, count_category)
def indicadors(self): reporter = IndicadorsDataReporter(get_ws_indicadors_client(), self.context) count_indicator, count_category, apply_order = self.parse_parameters() service_id = self.context.service_id service_indicators_order = (self.context.service_indicators_order if apply_order else None) if not service_id: return None try: return reporter.list_by_service_id_and_indicators_order( service_id, service_indicators_order, count_indicator, count_category) except IndicadorsDataReporterException as e: logger.warning("Error when listing indicators ({0})".format(e)) return None
def indicadors(self): reporter = IndicadorsDataReporter( get_ws_indicadors_client(), self.context) count_indicator, count_category, apply_order = self.parse_parameters() service_id = self.context.service_id service_indicators_order = ( self.context.service_indicators_order if apply_order else None) if not service_id: return None try: return reporter.list_by_service_id_and_indicators_order( service_id, service_indicators_order, count_indicator, count_category) except IndicadorsDataReporterException as e: logger.warning( "Error when listing indicators ({0})".format(e)) return None
def test_translate_frequency_should_translate_unk_if_freq_not_str(self, mock_): reporter = IndicadorsDataReporter( self.client, context=Mock(translate=Mock())) reporter._translate_frequency(123) mock_.assert_called_with('category_freq_unknown')
def test_translate_frequency_should_translate_lowercased_freq_if_freq_in_values(self, mock_): reporter = IndicadorsDataReporter( self.client, context=Mock(translate=Mock())) reporter._translate_frequency(u'Horaria') mock_.assert_called_with('category_freq_horaria')
def test_translate_frequency_should_translate_lowercased_freq_if_freq_in_values( self, mock_): reporter = IndicadorsDataReporter(self.client, context=Mock(translate=Mock())) reporter._translate_frequency(u'Horaria') mock_.assert_called_with('category_freq_horaria')
def test_translate_frequency_should_translate_unk_if_freq_not_str( self, mock_): reporter = IndicadorsDataReporter(self.client, context=Mock(translate=Mock())) reporter._translate_frequency(123) mock_.assert_called_with('category_freq_unknown')