diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 3826c078a6b6a0d6869a3187754c76b6ea4a8d50..a5212248e4219dc98e135c4ed07b961909f12536 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -538,57 +538,35 @@ fedora_build: # Build tests - mkdir play - pushd play - - plom-server init - - plom-server users --demo - - plom-create new - - plom-create parse - - python3 -m plom.create.demotools + - plom-demo . --num-papers 3 --prepare-only - ip addr - - plom-server launch & + - plom-server launch . & - sleep 2 - sleep 2 - echo "Server should be in background" - jobs -l - echo "We should be able to connect to it" - curl -k https://localhost:41984/Version - - plom-create class --demo -w 1234 - - plom-create make -w 1234 - A=`ls papersToPrint/ | wc -l` # How many files? - - bash -c "[[ $A == 20 ]]" # should be 20 - - python3 -m plom.create.exam_scribbler -w 1234 - # Scan and upload - # supposed to fail: - - if (plom-scan process); then false; else true; fi - - plom-scan process -w 4567 fake_scribbled_exams1.pdf - - plom-scan upload -w 4567 -u fake_scribbled_exams1.pdf - # TODO: I removed some -c lines here... - - plom-scan status -w 4567 - - plom-scan process -w 4567 fake_scribbled_exams2.pdf - - plom-scan upload -w 4567 -u fake_scribbled_exams2.pdf - - plom-scan status -w 4567 - - plom-scan process -w 4567 fake_scribbled_exams3.pdf - - plom-scan upload -w 4567 -u fake_scribbled_exams3.pdf - - plom-scan status -w 4567 + - bash -c "[[ $A == 3 ]]" # should be 3 + - export PLOM_MANAGER_PASSWORD=1234 # not supposed to be done yet: - - if (plom-finish status -w 1234); then false; else true; fi + - if (plom-finish status); then false; else true; fi - python3 -m plom.client.randoIDer -s localhost -u user0 -w 0123 - python3 -m plom.client.randoMarker -s localhost -u user0 -w 0123 - - plom-finish status -w 1234 - - plom-finish csv -w 1234 + - plom-finish status + - plom-finish csv - A=`cat marks.csv | wc -l` # How many lines? - echo $A - A="$((A-1))" - - bash -c "[[ $A == 19 ]]" # b/c 1 page from 1 test is deleted + - bash -c "[[ $A == 2 ]]" # b/c 1 page from 1 test is deleted - file marks.csv - file marks.csv | grep text - - plom-finish reassemble -w 1234 + - plom-finish reassemble - A=`ls reassembled/ | wc -l` # How many files? - - bash -c "[[ $A == 19 ]]" # since 1 test incomplete + - bash -c "[[ $A == 2 ]]" # since 1 test incomplete - A=`du -sm reassembled/ | cut -f1` # Don't regress on issue #627 - - bash -c "[[ $A -lt 40 ]]" # not more than 10 MB - - plom-finish webpage - - A=`ls codedReturn/ | wc -l` # How many files? - - bash -c "[[ $A == 20 ]]" # 20-1 pdf + 1 html + - bash -c "[[ $A -lt 10 ]]" # not more than 10 MB - echo "Now take down the server" # https://gitlab.com/gitlab-org/gitlab-runner/issues/2880 - jobs -l @@ -631,57 +609,38 @@ nodock_newdeps: # Build tests - mkdir play - pushd play - - plom-server init - - plom-server users --demo - - plom-create new - - plom-create parse - - python3 -m plom.create.demotools + - plom-demo . --num-papers 3 --prepare-only - ip addr - - plom-server launch & + - plom-server launch . & - sleep 2 - sleep 2 - echo "Server should be in background" - jobs -l - echo "We should be able to connect to it" - curl -k https://localhost:41984/Version - - plom-create class --demo -w 1234 - - plom-create make -w 1234 - A=`ls papersToPrint/ | wc -l` # How many files? - - bash -c "[[ $A == 20 ]]" # should be 20 - - python3 -m plom.create.exam_scribbler -w 1234 - # Scan and upload - # supposed to fail: - - if (plom-scan process); then false; else true; fi - - plom-scan process -w 4567 fake_scribbled_exams1.pdf - - plom-scan upload -w 4567 -u fake_scribbled_exams1.pdf - # TODO: I removed some -c lines here... - - plom-scan status -w 4567 - - plom-scan process -w 4567 fake_scribbled_exams2.pdf - - plom-scan upload -w 4567 -u fake_scribbled_exams2.pdf - - plom-scan status -w 4567 - - plom-scan process -w 4567 fake_scribbled_exams3.pdf - - plom-scan upload -w 4567 -u fake_scribbled_exams3.pdf - - plom-scan status -w 4567 + - bash -c "[[ $A == 3 ]]" # should be 3 + - export PLOM_MANAGER_PASSWORD=1234 # not supposed to be done yet: - - if (plom-finish status -w 1234); then false; else true; fi + - if (plom-finish status); then false; else true; fi - python3 -m plom.client.randoIDer -s localhost -u user0 -w 0123 - python3 -m plom.client.randoMarker -s localhost -u user0 -w 0123 - - plom-finish status -w 1234 - - plom-finish csv -w 1234 + - plom-finish status + - plom-finish csv - A=`cat marks.csv | wc -l` # How many lines? - echo $A - A="$((A-1))" - - bash -c "[[ $A == 19 ]]" # b/c 1 page from 1 test is deleted + - bash -c "[[ $A == 2 ]]" # b/c 1 page from 1 test is deleted - file marks.csv - file marks.csv | grep text - - plom-finish reassemble -w 1234 + - plom-finish reassemble - A=`ls reassembled/ | wc -l` # How many files? - - bash -c "[[ $A == 19 ]]" # since 1 test incomplete + - bash -c "[[ $A == 2 ]]" # since 1 test incomplete - A=`du -sm reassembled/ | cut -f1` # Don't regress on issue #627 - - bash -c "[[ $A -lt 40 ]]" # not more than 10 MB + - bash -c "[[ $A -lt 10 ]]" # not more than 10 MB - plom-finish webpage - A=`ls codedReturn/ | wc -l` # How many files? - - bash -c "[[ $A == 20 ]]" # 20-1 pdf + 1 html + - bash -c "[[ $A == 3 ]]" # 3-1 pdf + 1 html - echo "Now take down the server" # https://gitlab.com/gitlab-org/gitlab-runner/issues/2880 - jobs -l @@ -726,57 +685,35 @@ nodock_mindeps: # Build tests - mkdir play - pushd play - - plom-server init - - plom-server users --demo - - plom-create new - - plom-create parse - - python3 -m plom.create.demotools + - plom-demo . --num-papers 3 --prepare-only - ip addr - - plom-server launch & + - plom-server launch . & - sleep 2 - sleep 2 - echo "Server should be in background" - jobs -l - echo "We should be able to connect to it" - curl -k https://localhost:41984/Version - - plom-create class --demo -w 1234 - - plom-create make -w 1234 - A=`ls papersToPrint/ | wc -l` # How many files? - - bash -c "[[ $A == 20 ]]" # should be 20 - - python3 -m plom.create.exam_scribbler -w 1234 - # Scan and upload - # supposed to fail: - - if (plom-scan process); then false; else true; fi - - plom-scan process -w 4567 fake_scribbled_exams1.pdf - - plom-scan upload -w 4567 -u fake_scribbled_exams1.pdf - # TODO: I removed some -c lines here... - - plom-scan status -w 4567 - - plom-scan process -w 4567 fake_scribbled_exams2.pdf - - plom-scan upload -w 4567 -u fake_scribbled_exams2.pdf - - plom-scan status -w 4567 - - plom-scan process -w 4567 fake_scribbled_exams3.pdf - - plom-scan upload -w 4567 -u fake_scribbled_exams3.pdf - - plom-scan status -w 4567 + - bash -c "[[ $A == 3 ]]" # should be 3 + - export PLOM_MANAGER_PASSWORD=1234 # not supposed to be done yet: - - if (plom-finish status -w 1234); then false; else true; fi + - if (plom-finish status); then false; else true; fi - python3 -m plom.client.randoIDer -s localhost -u user0 -w 0123 - python3 -m plom.client.randoMarker -s localhost -u user0 -w 0123 - - plom-finish status -w 1234 - - plom-finish csv -w 1234 + - plom-finish status + - plom-finish csv - A=`cat marks.csv | wc -l` # How many lines? - echo $A - A="$((A-1))" - - bash -c "[[ $A == 19 ]]" # b/c 1 page from 1 test is deleted + - bash -c "[[ $A == 2 ]]" # b/c 1 page from 1 test is deleted - file marks.csv - file marks.csv | grep text - - plom-finish reassemble -w 1234 + - plom-finish reassemble - A=`ls reassembled/ | wc -l` # How many files? - - bash -c "[[ $A == 19 ]]" # since 1 test incomplete + - bash -c "[[ $A == 2 ]]" # since 1 test incomplete - A=`du -sm reassembled/ | cut -f1` # Don't regress on issue #627 - - bash -c "[[ $A -lt 40 ]]" # not more than 10 MB - - plom-finish webpage - - A=`ls codedReturn/ | wc -l` # How many files? - - bash -c "[[ $A == 20 ]]" # 20-1 pdf + 1 html + - bash -c "[[ $A -lt 10 ]]" # not more than 10 MB - echo "Now take down the server" # https://gitlab.com/gitlab-org/gitlab-runner/issues/2880 - jobs -l diff --git a/plom/scripts/demo.py b/plom/scripts/demo.py index a86ad68871d50bbccf188b3bbb267bdbb2869ba2..90ad3794b9a89d266fbe83420e765974551b8a61 100644 --- a/plom/scripts/demo.py +++ b/plom/scripts/demo.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 # SPDX-License-Identifier: AGPL-3.0-or-later -# Copyright (C) 2020-21 Andrew Rechnitzer +# Copyright (C) 2020-2021 Andrew Rechnitzer # Copyright (C) 2020-2022 Colin B. Macdonald # Copyright (C) 2020 Vala Vakilian # Copyright (C) 2020 Victoria Schuster @@ -66,6 +66,14 @@ def get_parser(): action="store_true", help="Start demo server but without uploading fake-scans. For testing purposes.", ) + parser.add_argument( + "--prepare-only", + action="store_true", + help=""" + Start the demo server long enough to get things running, then stop. + This is primarily for testing and debugging. + """, + ) return parser @@ -171,13 +179,15 @@ def main(): assert background_server.ping_server(), "cannot ping server, something gone wrong?" print("Server seems to still be running: demo setup is complete") - print('\n*** Now run "plom-client" ***\n') - port = args.port if args.port else Default_Port - print(f" * Server running on port {port} with PID {background_server.pid}\n") - print(f" * Account login info: {args.server_dir / 'userListRaw.csv'}\n") - # print(" * Press Ctrl-C to stop this demo") - # background_server.wait() - input("Press enter when you want to stop the server...") + if args.prepare_only: + print("\n*** We will now stop the demo server...") + print(f'*** You can run it again with "plom-server launch {args.server_dir}"\n') + else: + print('\n*** Now run "plom-client" ***\n') + port = args.port if args.port else Default_Port + print(f" * Server running on port {port} with PID {background_server.pid}\n") + print(f" * Account login info: {args.server_dir / 'userListRaw.csv'}\n") + input("Press enter when you want to stop the server...") background_server.stop() print("Server stopped, goodbye!")