Skip to content

Commit

Permalink
Merge branch 'master' into 142-indicador-cantidad-licencias
Browse files Browse the repository at this point in the history
  • Loading branch information
lrromero committed Jul 6, 2018
2 parents 78ba28c + 3fedafd commit fbf5cf2
Show file tree
Hide file tree
Showing 2 changed files with 29 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 @@ -167,7 +167,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 @@ -178,6 +179,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 @@ -192,6 +194,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 @@ -230,7 +233,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
26 changes: 23 additions & 3 deletions tests/test_indicators.py
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,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 @@ -185,7 +186,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 @@ -279,7 +281,6 @@ def test_network_license_indicators(self):
one_catalog,
other_catalog
])

# Esperado: 2 ODbL en full, 1 en several
# 1 Creative Commons en several
# 1 Dataset en several sin licencias
Expand All @@ -295,6 +296,25 @@ def test_network_license_indicators(self):
for k, v in expected.items():
assert_equal(network_indicators[k], v)

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 fbf5cf2

Please sign in to comment.