/** * */ public function testTryPackageShowNoResults() { $CkanClient = $this->prophesize('CKAN\\CkanClient'); $CkanClient->package_show('dataset-not-found')->willThrow(new NotFoundHttpException()); $this->CkanManager->setCkan($CkanClient->reveal()); $package = $this->CkanManager->tryPackageShow('dataset-not-found'); $this->assertFalse($package); }
/** * @param $category * @param CkanManager $CkanManagerProduction */ public function checkGroupAgainstProd($category, self $CkanManagerProduction) { $csv = new Writer($this->resultsDir . '/' . $category . date('_Ymd-His') . '.csv'); $csv->writeRow(['Staging dataset name', 'Staging Source', 'Prod exists', 'Prod has ' . $category, 'Prod Source']); $ckan_query = '((groups:' . $category . ') + dataset_type:dataset)'; $start = 0; $per_page = 20; while (true) { $packages = $this->tryPackageSearch($ckan_query, '', $per_page, $start); if (!$packages) { echo "{$start} / {$per_page} :: finish" . PHP_EOL; break; } foreach ($packages as $package) { if (is_array($package['extras']) && sizeof($package['extras']) && strpos(json_encode($package['extras']), '"dms"')) { $resource_type = 'DMS'; // echo "DMS ".$package['name'].PHP_EOL; } elseif (is_array($package['extras']) && sizeof($package['extras']) && strpos(json_encode($package['extras']), '"value":"geospatial"')) { $resource_type = 'GEO'; // echo "GEO ".$package['name'].PHP_EOL; } elseif (is_array($package['extras']) && sizeof($package['extras']) && strpos(json_encode($package['extras']), 'source_datajson_identifier')) { $resource_type = 'JSON'; // echo "JSON ".$package['name'].PHP_EOL; } else { $resource_type = 'OTHER'; echo json_encode($package['extras']) . PHP_EOL; echo "UNKNOWN: " . $package['name'] . PHP_EOL; } $prod_package = $CkanManagerProduction->tryPackageShow($package['name']); $exists = $prod_package ? 'EXISTS' : 'NOT FOUND'; $prod_category_found = ''; $prod_resource_type = ''; if ($prod_package) { $prod_category_found = 'FALSE'; if (isset($prod_package['groups']) && sizeof($prod_package['groups']) && strpos(json_encode($prod_package['groups']), $category)) { $prod_category_found = 'HAS'; } if (is_array($prod_package['extras']) && sizeof($prod_package['extras']) && strpos(json_encode($prod_package['extras']), '"dms"')) { $prod_resource_type = 'DMS'; // echo "DMS ".$prod_package['name'].PHP_EOL; } elseif (is_array($prod_package['extras']) && sizeof($prod_package['extras']) && strpos(json_encode($prod_package['extras']), '"value":"geospatial"')) { $prod_resource_type = 'GEO'; // echo "GEO ".$prod_package['name'].PHP_EOL; } elseif (is_array($prod_package['extras']) && sizeof($prod_package['extras']) && strpos(json_encode($prod_package['extras']), 'source_datajson_identifier')) { $prod_resource_type = 'JSON'; // echo "JSON ".$prod_package['name'].PHP_EOL; } else { $prod_resource_type = 'OTHER'; echo json_encode($prod_package['extras']) . PHP_EOL; echo "UNKNOWN on PROD: " . $prod_package['name'] . PHP_EOL; } } $csv->writeRow([$package['name'], $resource_type, $exists, $prod_category_found, $prod_resource_type]); } $start += $per_page; } }
$start--; continue; } // no anchors please list($dataset_name, ) = explode('#', basename(trim($row['0']))); if (!$dataset_name) { continue; } // double trouble check if (strpos($row['0'], '://')) { if (!strpos($row['0'], '/dataset/')) { file_put_contents($results_dir . '/' . $basename . '_export.log.csv', $row['0'] . ',WRONG URL' . PHP_EOL, FILE_APPEND | LOCK_EX); continue; } } printf('%50s', $dataset_name); $dataset = $CkanManager->tryPackageShow($dataset_name); if ($dataset) { printf('%10s', 'OK'); $return[] = $dataset; } else { printf('%10s', 'FAIL'); } echo PHP_EOL; } file_put_contents($results_dir . '/' . $basename . '.json', json_encode($return, JSON_PRETTY_PRINT), FILE_APPEND | LOCK_EX); } //$brief = $CkanManager->exportShort('extras_harvest_source_title:Test ISO WAF AND (dataset_type:dataset)'); //$csv->writeFromArray($brief); // show running time on finish timer();