pacifica/pacifica-cli

View on GitHub
appveyor.yml

Summary

Maintainability
Test Coverage
version: 0.1.{build}
pull_requests:
  do_not_increment_build_number: true

environment:
  PGUSER: postgres
  PGPASSWORD: Password12!
  PGSQL_PATH: C:\Program Files\PostgreSQL\9.6
  VOLUME_PATH: C:\ingest
  PEEWEE_URL: postgres://postgres:Password12!@localhost/pacifica_metadata
  BROKER_URL: redis://127.0.0.1:6379/0
  BACKEND_URL: redis://127.0.0.1:6379/0

  matrix:
    - PYTHON: C:\Python36-x64
    - PYTHON: C:\Python37-x64
    - PYTHON: C:\Python38-x64

services:
  - postgresql

before_test:
  - ps: >
      $env:PATH = "${env:PGSQL_PATH}\bin;${env:PATH}";
      createdb pacifica_metadata;
      createdb pacifica_ingest;
      createdb pacifica_cartd;
      C:\pacifica\Scripts\activate.ps1;
      mkdir C:\ingest;
      mkdir C:\archive;
      mkdir -p "C:\etc\pacifica-cli";
      cp config/example.ini /etc/pacifica-cli/config.ini;
      $env:METADATA_CPCONFIG = "$PWD/travis/metadata/server.conf";
      pacifica-metadata-cmd dbsync;
      Start-Process C:\pacifica\Scripts\pacifica-metadata.exe -RedirectStandardError metadata-error.log -RedirectStandardOutput metadata-output.log;
      nuget install redis-64 -excludeversion;
      redis-64\tools\redis-server.exe --service-install;
      redis-64\tools\redis-server.exe --service-start;
      $env:ARCHIVEINTERFACE_CONFIG = "$PWD/travis/archivei/config.cfg";
      $env:ARCHIVEINTERFACE_CPCONFIG = "$PWD/travis/archivei/server.conf";
      Start-Process C:\pacifica\Scripts\pacifica-archiveinterface.exe;
      $env:UNIQUEID_CONFIG = "$PWD/travis/uniqueid/config.cfg";
      $env:UNIQUEID_CPCONFIG = "$PWD/travis/uniqueid/server.conf";
      pacifica-uniqueid-cmd dbsync;
      Start-Process C:\pacifica\Scripts\pacifica-uniqueid.exe;
      $env:CARTD_CONFIG = "$PWD/travis/cartd/config-appveyor.cfg";
      $env:CARTD_CPCONFIG = "$PWD/travis/cartd/server.conf";
      pacifica-cartd-cmd dbsync;
      Start-Process C:\pacifica\Scripts\pacifica-cartd.exe;
      Start-Process C:\pacifica\Scripts\celery.exe -ArgumentList "-A pacifica.cartd.tasks worker --loglevel=info -P solo -c 1" -RedirectStandardOutput ccelery-output.log -RedirectStandardError ccelery-error.log;
      $env:INGEST_CONFIG = "$PWD/travis/ingest/config-appveyor.cfg";
      $env:INGEST_CPCONFIG = "$PWD/travis/ingest/server.conf";
      pacifica-ingest-cmd dbsync;
      Start-Process C:\pacifica\Scripts\pacifica-ingest.exe;
      Start-Process C:\pacifica\Scripts\celery.exe -ArgumentList "-A pacifica.ingest.tasks worker --loglevel=info -P solo -c 1" -RedirectStandardOutput celery-output.log -RedirectStandardError celery-error.log;
      $MD_VERSION = `pip show pacifica-metadata | grep Version: | awk '{ print $2 }';
      Invoke-WebRequest https://github.com/pacifica/pacifica-metadata/archive/v${MD_VERSION}.zip -OutFile pacifica-metadata.zip;
      Expand-Archive pacifica-metadata.zip -DestinationPath C:\pacifica-metadata;
      sleep 10; Invoke-WebRequest http://localhost:8121/users;
      pushd C:\pacifica-metadata\pacifica-metadata-${MD_VERSION};
      python tests\test_files\loadit_test.py;
      popd;
      $env:POLICY_CPCONFIG = "$PWD/travis/policy/server.conf";
      $env:METADATA_URL = "http://127.0.0.1:8121";
      $env:STATUS_URL = "http://127.0.0.1:8121/keys?_id=104";
      Start-Process C:\pacifica\Scripts\pacifica-policy.exe -RedirectStandardError policy-error.log -RedirectStandardOutput policy-output.log;
      Invoke-WebRequest -InFile README.md -Method PUT -Headers @{'Last-Modified'='Sun, 06 Nov 1994 08:49:37 GMT'} http://127.0.0.1:8080/103;
      Invoke-WebRequest -InFile README.md -Method PUT -Headers @{'Last-Modified'='Sun, 06 Nov 1994 08:49:37 GMT'} http://127.0.0.1:8080/104;
      $size = (Get-Item README.md).length;
      $hash = (Get-FileHash -Algorithm sha1 readme.md).hash;
      '{ "hashsum": "'+$hash.ToLower()+'", "hashtype": "sha1", "size": '+$size+'}' | Invoke-WebRequest -Method POST -Headers @{ "content-type" = "application/json" } http://127.0.0.1:8121/files?_id=103;
      '{ "hashsum": "'+$hash.ToLower()+'", "hashtype": "sha1", "size": '+$size+'}' | Invoke-WebRequest -Method POST -Headers @{ "content-type" = "application/json" } http://127.0.0.1:8121/files?_id=104;
      python "tests/generate_ce_stub_test.py";
      Invoke-WebRequest http://127.0.0.1:8181/status/users/search/dmlb2001/simple -TimeoutSec 1800;
      Invoke-WebRequest 'http://127.0.0.1:8066/get_state?job_id=1234';
      Invoke-WebRequest 'http://127.0.0.1:8051/getid?range=42&mode=test_mode';
      Invoke-WebRequest http://127.0.0.1:8080/1234;
      Get-Content celery-output.log; Get-Content celery-error.log;
      echo "Done!";

install:
  - ps: >
      $env:PATH = "$env:MYSQL_PATH\bin;${env:PGSQL_PATH}\bin;${env:PYTHON}\Scripts;${env:PATH}";
      Invoke-WebRequest -Uri "https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.5.zip" -OutFile "elasticsearch.zip";
      Expand-Archive "elasticsearch.zip" -DestinationPath "C:\elasticsearch";
      Start-Process C:\elasticsearch\elasticsearch-5.6.5\bin\elasticsearch;
      & $env:PYTHON\python.exe -m virtualenv C:\pacifica;
      C:\pacifica\Scripts\activate.ps1;
      python -m pip install pip setuptools wheel --upgrade;
      pip install -r requirements-dev.txt;
      pip install .;
      echo "Done";

build: off

test_script:
  - ps: >
      C:\pacifica\Scripts\activate.ps1;
      pre-commit run -a;
      $home_var = `python -c "from os.path import expanduser; print(expanduser('~'))";
      cd tests;
      cp -r ../travis .;
      cp ../README.md .;
      coverage run --include='*/site-packages/pacifica/cli/*' -m pacifica.cli --help;
      coverage run --include='*/site-packages/pacifica/cli/*' -a -m pacifica.cli upload --help;
      coverage run --include='*/site-packages/pacifica/cli/*' -a -m pacifica.cli download --help;
      coverage run --include='*/site-packages/pacifica/cli/*' -a -m pacifica.cli --config ../travis/uploader.json --help;
      coverage run --include='*/site-packages/pacifica/cli/*' -a -m pacifica.cli --config=../travis/uploader.json --help;
      $env:UPLOADER_CONFIG = '../travis/uploader.json';
      coverage run --include='*/site-packages/pacifica/cli/*' -a -m pacifica.cli upload --help;
      coverage run --include='*/site-packages/pacifica/cli/*' -a -m pacifica.cli download --help;
      coverage run --include='*/site-packages/pacifica/cli/*' -a -m pacifica.cli configure --help;
      $env:UPLOADER_CONFIG = ''; cp '../travis/uploader.json' ~/.pacifica_cli/uploader.json;
      coverage run --include='*/site-packages/pacifica/cli/*' -a -m pacifica.cli upload --help;
      $env:UPLOADER_CONFIG = '../travis/uploader.json';
      printf '\n\n\n\n\n\n\n' | coverage run --include='*/site-packages/pacifica/cli/*' -a -m pacifica.cli configure;
      printf '\n\n\n\n\n\nTrue\nclientssl\n~/.pacifica-cli/my.key\n~/.pacifica-cli/my.cert\n' | coverage run --include='*/site-packages/pacifica/cli/*' -a -m pacifica.cli configure;
      printf '\n\n\n\n\n\nFalse\nbasic\nusername\npassword\n' | coverage run --include='*/site-packages/pacifica/cli/*' -a -m pacifica.cli configure;
      printf 'http://localhost:8066/upload\nhttp://localhost:8066/get_state\nhttp://localhost:8181/uploader\nhttp://localhost:8181/ingest\nhttp://localhost:8081\nhttp://localhost:8181/status/transactions/by_id\nTrue\nNone\n' | coverage run --include='*/site-packages/pacifica/cli/*' -a -m pacifica.cli configure;
      coverage run --include='*/site-packages/pacifica/cli/*' -a -m pacifica.cli download --transaction-id 67;
      coverage run --include='*/site-packages/pacifica/cli/*' -a -m pacifica.cli download --cloudevent ce_stub.json;
      coverage run --include='*/site-packages/pacifica/cli/*' -a -m pacifica.cli upload --dry-run --instrument 54 --logon dmlb2001;
      $env:PAGER = '';
      printf '\n\n\n\n' | coverage run --include='*/site-packages/pacifica/cli/*' -a -m pacifica.cli upload --dry-run --interactive --logon dmlb2001;
      $env:PAGER = 'cat';
      printf '\n\n\n\n' | coverage run --include='*/site-packages/pacifica/cli/*' -a -m pacifica.cli upload --dry-run --interactive --logon dmlb2001;
      printf '8192\n\n\n\n\n' | coverage run --include='*/site-packages/pacifica/cli/*' -a -m pacifica.cli upload --dry-run --interactive --logon dmlb2001;
      whoami;
      Invoke-WebRequest -Method POST -Headers @{ "content-type" = "application/json" } -Body '{ "network_id":"appveyor" }' http://localhost:8121/users?_id=11;
      echo "This should fail";
      coverage run --include='*/site-packages/pacifica/cli/*' -a -m pacifica.cli upload --dry-run --instrument 54;
      if ($LastExitCode -eq 0) { $host.SetShouldExit(-1); };
      coverage run --include='*/site-packages/pacifica/cli/*' -a -m pacifica.cli upload --dry-run --instrument 9876;
      if ($LastExitCode -eq 0) { $host.SetShouldExit(-1); };
      coverage run --include='*/site-packages/pacifica/cli/*' -a -m pacifica.cli upload --dry-run --local-save retry.tar --local-compress BLAH;
      if ($LastExitCode -eq 0) { $host.SetShouldExit(-1); };
      echo "Done with failure testing";
      coverage run --include='*/site-packages/pacifica/cli/*' -a -m pacifica.cli upload --instrument 54 --logon dmlb2001 SOMETHING_THAT_DOES_NOT_EXIST.md;
      coverage run --include='*/site-packages/pacifica/cli/*' -a -m pacifica.cli upload --dry-run --logon dmlb2001 --project-regex 'expired closed and end';
      Invoke-WebRequest -Method POST -Headers @{ "content-type" = "application/json" } -Body '{ "network_id":"appveyor" }' http://localhost:8121/users?_id=10;
      Invoke-WebRequest -Method POST -Headers @{ "content-type" = "application/json" } -Body '{ "network_id":"someoneelse" }' http://localhost:8121/users?_id=11;
      $env:PACIFICA_CLI_INI = "$home_var\.pacifica_cli\config.ini";
      coverage run --include='*/site-packages/pacifica/cli/*' -a -m pacifica.cli upload README.md;
      coverage run --include='*/site-packages/pacifica/cli/*' -a -m pacifica.cli upload travis;
      coverage run --include='*/site-packages/pacifica/cli/*' -a -m pacifica.cli upload --tar-in-tar README.md;
      coverage run --include='*/site-packages/pacifica/cli/*' -a -m pacifica.cli upload --local-save retry.tar README.md;
      tar -xf retry.tar metadata.txt;
      coverage run --include='*/site-packages/pacifica/cli/*' -a -m pacifica.cli upload --local-save retry.tar --local-compress bzip2 README.md;
      coverage run --include='*/site-packages/pacifica/cli/*' -a -m pacifica.cli upload --local-save retry.tar --local-compress gzip README.md;
      coverage run --include='*/site-packages/pacifica/cli/*' -a -m pacifica.cli upload --local-save retry.tar --do-not-upload README.md;
      coverage run --include='*/site-packages/pacifica/cli/*' -a -m pacifica.cli upload --local-retry retry.tar;
      coverage run --include='*/site-packages/pacifica/cli/*' -a -m pacifica.cli upload --nowait README.md;
      coverage run --include='*/site-packages/pacifica/cli/*' -a -m pytest -xsv;
      coverage report --show-missing --fail-under 100