Skip to content

Commit

Permalink
Merge pull request #174 from datosgobar/169-distribuciones-federadas-…
Browse files Browse the repository at this point in the history
…cant

169 distribuciones federadas cant
  • Loading branch information
lrromero committed Jul 5, 2018
2 parents d5fa1ad + 55596ac commit 3fedafd
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 5 deletions.
8 changes: 6 additions & 2 deletions pydatajson/indicators.py
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,8 @@ def _federation_indicators(catalog, central_catalog):
'datasets_federados_eliminados': None,
'datasets_no_federados': None,
'datasets_federados': None,
'datasets_federados_pct': None
'datasets_federados_pct': None,
'distribuciones_federadas_cant': None
}
try:
central_catalog = readers.read_catalog(central_catalog)
Expand All @@ -169,6 +170,7 @@ def _federation_indicators(catalog, central_catalog):

federados = 0 # En ambos catálogos
no_federados = 0
dist_federadas = 0
datasets_federados_eliminados_cant = 0
datasets_federados = []
datasets_no_federados = []
Expand All @@ -183,6 +185,7 @@ def _federation_indicators(catalog, central_catalog):
federados += 1
datasets_federados.append((dataset.get('title'),
dataset.get('landingPage')))
dist_federadas += len(dataset.get('distribution', []))
break
if not found:
no_federados += 1
Expand Down Expand Up @@ -221,7 +224,8 @@ def _federation_indicators(catalog, central_catalog):
'datasets_federados_eliminados': datasets_federados_eliminados,
'datasets_no_federados': datasets_no_federados,
'datasets_federados': datasets_federados,
'datasets_federados_pct': round(federados_pct, 2)
'datasets_federados_pct': round(federados_pct, 2),
'distribuciones_federadas_cant': dist_federadas
})
return result

Expand Down
29 changes: 26 additions & 3 deletions tests/test_indicators.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
record_mode='once')


class IndicatorsTestCase(object):
class TestIndicatorsTestCase(object):
SAMPLES_DIR = os.path.join("tests", "samples")
RESULTS_DIR = RESULTS_DIR
TEMP_DIR = os.path.join("tests", "temp")
Expand Down Expand Up @@ -142,7 +142,8 @@ def test_federation_indicators_same_catalog(self):
'datasets_federados_cant': 3,
'datasets_no_federados_cant': 0,
'datasets_no_federados': [],
'datasets_federados_pct': 100
'datasets_federados_pct': 100,
'distribuciones_federadas_cant': 6
}

for k, v in expected.items():
Expand All @@ -162,7 +163,8 @@ def test_federation_indicators_no_datasets(self):
('Sistema de contrataciones electrónicas UNO', None),
('Sistema de contrataciones electrónicas DOS', None),
('Sistema de contrataciones electrónicas TRES', None)],
'datasets_federados_pct': 0
'datasets_federados_pct': 0,
'distribuciones_federadas_cant': 0
}

for k, v in expected.items():
Expand Down Expand Up @@ -244,6 +246,27 @@ def test_network_indicators(self):
for k, v in expected.items():
assert_equal(network_indicators[k], v)

@my_vcr.use_cassette()
def test_network_federation_indicators(self):
one_catalog = os.path.join(self.SAMPLES_DIR, "several_datasets.json")
other_catalog = os.path.join(self.SAMPLES_DIR, "full_data.json")
central = one_catalog
indicators, network_indicators = self.dj.generate_catalogs_indicators([
one_catalog,
other_catalog
], central)

# Esperado: Los datasets de several estan federados y los de full, no
expected = {
'datasets_federados_cant': 3,
'datasets_no_federados_cant': 2,
'datasets_federados_pct': 60.0,
'distribuciones_federadas_cant': 6
}

for k, v in expected.items():
assert_equal(network_indicators[k], v)

@my_vcr.use_cassette()
def test_indicators_invalid_periodicity(self):
catalog = os.path.join(self.SAMPLES_DIR,
Expand Down

0 comments on commit 3fedafd

Please sign in to comment.