mirror of
https://git.savannah.gnu.org/git/guix.git
synced 2025-01-22 18:26:43 +01:00
gnu: Add online-judge-tools.
* gnu/packages/python-xyz.scm (online-judge-tools): New variable. * gnu/packages/patches/online-judge-tools.patch: New file. * gnu/local.mk (dist_patch_DATA): Add patch file. Signed-off-by: Christopher Baines <mail@cbaines.net> Change-Id: I78315db15ca8205dff607e98388c404ede64fb60
This commit is contained in:
parent
9524ff9f3a
commit
789ef6837f
3 changed files with 98 additions and 0 deletions
|
@ -1703,6 +1703,7 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/omake-fix-non-determinism.patch \
|
||||
%D%/packages/patches/oneko-remove-nonfree-characters.patch \
|
||||
%D%/packages/patches/onionshare-cli-async-mode.patch \
|
||||
%D%/packages/patches/online-judge-tools.patch \
|
||||
%D%/packages/patches/onnx-optimizer-system-library.patch \
|
||||
%D%/packages/patches/onnx-use-system-googletest.patch \
|
||||
%D%/packages/patches/onnx-shared-libraries.patch \
|
||||
|
|
62
gnu/packages/patches/online-judge-tools.patch
Normal file
62
gnu/packages/patches/online-judge-tools.patch
Normal file
|
@ -0,0 +1,62 @@
|
|||
Skip failing tests and an assertion. The skipped tests require network
|
||||
connections.
|
||||
|
||||
--- a/tests/command_download.py
|
||||
+++ b/tests/command_download.py
|
||||
@@ -90,6 +90,7 @@ class DownloadTest(unittest.TestCase):
|
||||
def snippet_call_download_failure(self, *args, **kwargs):
|
||||
tests.command_download.snippet_call_download_failure(self, *args, **kwargs)
|
||||
|
||||
+ @unittest.skip("Disabled by Guix")
|
||||
def test_call_download_atcoder_abc114_c(self):
|
||||
self.snippet_call_download('https://atcoder.jp/contests/abc114/tasks/abc114_c', [
|
||||
{
|
||||
@@ -106,6 +107,7 @@ class DownloadTest(unittest.TestCase):
|
||||
},
|
||||
], type='json')
|
||||
|
||||
+ @unittest.skip("Disabled by Guix")
|
||||
def test_call_download_atcoder_abc003_4(self):
|
||||
self.snippet_call_download('https://atcoder.jp/contests/abc003/tasks/abc003_4', [
|
||||
{
|
||||
@@ -126,9 +128,11 @@ class DownloadTest(unittest.TestCase):
|
||||
},
|
||||
], type='json')
|
||||
|
||||
+ @unittest.skip("Disabled by Guix")
|
||||
def test_call_download_invalid_url(self):
|
||||
self.snippet_call_download_failure('http://abc001.contest.atcoder.jp/tasks/abc001_100')
|
||||
|
||||
+ @unittest.skip("Disabled by Guix")
|
||||
def test_call_download_413(self):
|
||||
# This task is not supported.
|
||||
self.snippet_call_download_failure('https://chokudai001.contest.atcoder.jp/tasks/chokudai_001_a')
|
||||
@@ -141,13 +145,16 @@ class DownloadInvalidTest(unittest.TestCase):
|
||||
def snippet_call_download_twice(self, *args, **kwargs):
|
||||
tests.command_download.snippet_call_download_twice(self, *args, **kwargs)
|
||||
|
||||
+ @unittest.skip("Disabled by Guix")
|
||||
def test_call_download_invalid(self):
|
||||
self.snippet_call_download_failure('https://not_exist_contest.jp/tasks/001_a')
|
||||
|
||||
+ @unittest.skip("Disabled by Guix")
|
||||
def test_call_download_no_sample_found(self):
|
||||
self.snippet_call_download_failure('https://atcoder.jp/contests/tenka1-2013-quala/tasks/tenka1_2013_qualA_a')
|
||||
self.snippet_call_download_failure('https://open.kattis.com/problems/hello')
|
||||
|
||||
+ @unittest.skip("Disabled by Guix")
|
||||
def test_call_download_twice(self):
|
||||
self.snippet_call_download_twice('https://atcoder.jp/contests/abc114/tasks/abc114_c', 'https://atcoder.jp/contests/abc003/tasks/abc003_4', [
|
||||
{
|
||||
|
||||
--- a/tests/command_test.py
|
||||
+++ b/tests/command_test.py
|
||||
@@ -1319,7 +1319,7 @@ class TestTest(unittest.TestCase):
|
||||
timer = threading.Timer(1.0, send_keyboard_interrupt)
|
||||
timer.start()
|
||||
result = tests.utils.run_in_sandbox(args=['-v', 'test', '-c', tests.utils.python_c("import time; time.sleep(10) # {}".format(marker_for_callee)), 'test/{}-1.in'.format(marker_for_caller)], files=files)
|
||||
- self.assertNotEqual(result['proc'].returncode, 0)
|
||||
+ # self.assertNotEqual(result['proc'].returncode, 0)
|
||||
|
||||
# check there are no processes whose command-line arguments contains the marker word
|
||||
for cmdline in pathlib.Path('/proc').glob('*/cmdline'):
|
|
@ -24630,6 +24630,41 @@ (define-public python-online-judge-api-client
|
|||
jmerle/competitive-companion.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public online-judge-tools
|
||||
(package
|
||||
(name "online-judge-tools")
|
||||
(version "11.5.1")
|
||||
;; Source distributions are not uploaded to PyPI.
|
||||
;; https://pypi.org/project/online-judge-tools/11.5.1/#files
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/online-judge-tools/oj")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0zkzmmjgjb6lyrzq1ip54cpnp7al9a7mcyjyi5vx58bvnx3q0c6m"))
|
||||
(patches (search-patches "online-judge-tools.patch"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
(list #:phases #~(modify-phases %standard-phases
|
||||
;; These tests require network connections
|
||||
(add-after 'unpack 'remove-failing-test
|
||||
(lambda _
|
||||
(delete-file "tests/command_version.py") #t)))))
|
||||
(inputs (list time))
|
||||
(propagated-inputs (list python-online-judge-api-client python-colorama
|
||||
python-requests))
|
||||
(home-page "https://github.com/online-judge-tools/oj")
|
||||
(synopsis "Command to help solving problems on various online judges")
|
||||
(description
|
||||
"@command{oj} is a command line tool to help solving problems on
|
||||
various online judges. This command automates downloading sample
|
||||
cases, generating additional test cases, testing for your code, and
|
||||
submitting it.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public python-parso
|
||||
(package
|
||||
(name "python-parso")
|
||||
|
|
Loading…
Reference in a new issue