def calculate_indicator_metrics(self): project_metrics = metrics_calc.get_project(self.project.pronac) metrics = FinancialIndicator.METRICS for metric_name in metrics: for metric in metrics[metric_name]: x = getattr(project_metrics.finance, metric) Metric.create_metric(metric, x, self)
def test_inlier_pronac(self): project = metrics.get_project('137225') response = project.finance.item_prices expected_keys = [ 'is_outlier', 'outliers_amount', 'total_items', 'maximum_expected', 'percentage' ] assert all(key in response for key in expected_keys) assert not response['is_outlier']
def test_get_metrics(self): project = metrics.get_project('130222') response = project.finance.new_providers expected_keys = [ 'novos_fornecedores', 'new_providers_percentage', 'segment_average_percentage', 'is_outlier', 'all_projects_average_percentage', ] assert all(key in response for key in expected_keys)
def test_proponent_with_analyzed_project(self): pronac = "1011645" # CGCCPF -> 00367651000114 project = metrics.get_project(pronac) # Testing metric proponent_pronacs = project.finance.proponent_projects assert proponent_pronacs['analyzed_projects']['number_of_projects'] > 0 assert any(proponent_pronacs['analyzed_projects'] ['pronacs_of_this_proponent']) assert pronac in (proponent_pronacs['analyzed_projects'] ['pronacs_of_this_proponent'])
def test_proponent_with_submitted_project(self): pronac = "079172" # CGCCPF -> '00274080001' project = metrics.get_project(pronac) # Testing metric proponentpronacs = project.finance.proponent_projects assert proponentpronacs['submitted_projects']['number_of_projects'] > 0 assert any(proponentpronacs['submitted_projects'] ['pronacs_of_this_proponent']) assert pronac in (proponentpronacs['submitted_projects'] ['pronacs_of_this_proponent'])
def create_indicator(self, project, is_valid, metrics_list): """ Creates FinancialIndicator object for a project, calculating metrics and indicator value """ project = Project.objects.get(pronac=project) indicator, _ = (FinancialIndicator.objects.update_or_create( project=project)) indicator.is_valid = is_valid if indicator.is_valid: project_metrics = metrics_calc.get_project(project.pronac) for metric_name in metrics_list: x = getattr(project_metrics.finance, metric_name) Metric.objects.create_metric(metric_name, x, indicator) indicator.fetch_weighted_complexity() project.complexity = indicator.value project.save() return indicator
def test_inlier_pronac(self): project = metrics.get_project('160712') assert not project.finance.approved_funds['is_outlier']
def test_outlier_pronac(self): project = metrics.get_project('1310066') assert project.finance.approved_funds['is_outlier']
def test_outlier_pronac(self): project = metrics.get_project('153038') response = project.finance.new_providers assert response['is_outlier'] assert response['novos_fornecedores']
def test_inlier_pronac(self): project = metrics.get_project('130222') response = project.finance.new_providers assert not (response['is_outlier'])
def test_outlier_pronac(self): project = metrics.get_project(1510865) response = project.finance.total_receipts assert all(key in response for key in EXPECTED_KEYS) assert response['is_outlier']
def test_inlier_pronac(self): pronac = "153699" project = metrics.get_project(pronac) response = project.finance.raised_funds assert not response['is_outlier']
def test_outlier_pronac(self): project = metrics.get_project('160858') assert project.finance.item_prices['is_outlier']
def test_inlier_pronac(self): project = metrics.get_project(90105) response = project.finance.number_of_items assert all(key in response for key in EXPECTED_KEYS) assert not response['is_outlier']