コード例 #1
0
 /**
  *
  */
 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);
 }
コード例 #2
0
 /**
  * @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;
     }
 }
コード例 #3
0
            $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();