GNU bug report logs - #65545
[PATCH v5 2/2] gnu: Add online-judge-tools

Previous Next

Package: guix-patches;

Reported by: gemmaro <gemmaro.dev <at> gmail.com>

Date: Sat, 26 Aug 2023 06:26:03 UTC

Severity: normal

Tags: patch

Done: Christopher Baines <mail <at> cbaines.net>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Christopher Baines <mail <at> cbaines.net>
Cc: tracker <at> debbugs.gnu.org
Subject: bug#65545: closed ([PATCH v5 2/2] gnu: Add online-judge-tools)
Date: Mon, 30 Oct 2023 11:32:02 +0000
[Message part 1 (text/plain, inline)]
Your message dated Mon, 30 Oct 2023 11:28:59 +0000
with message-id <87il6oxs8p.fsf <at> cbaines.net>
and subject line Re: [bug#65545] [PATCH v5 2/2] gnu: Add online-judge-tools
has caused the debbugs.gnu.org bug report #65545,
regarding [PATCH v5 2/2] gnu: Add online-judge-tools
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)


-- 
65545: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=65545
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: gemmaro <gemmaro.dev <at> gmail.com>
To: guix-patches <at> gnu.org,
	60424 <at> debbugs.gnu.org
Cc: gemmaro <gemmaro.dev <at> gmail.com>
Subject: [PATCH v5 2/2] gnu: Add online-judge-tools
Date: Sat, 26 Aug 2023 15:22:41 +0900
* gnu/packages/python-xyz.scm (online-judge-tools): New variable.
* gnu/packages/patches/online-judge-tools.patch, gnu/local.mk: Add patch file.
---
 gnu/local.mk                                  |  3 +-
 gnu/packages/patches/online-judge-tools.patch | 62 +++++++++++++++++++
 gnu/packages/python-xyz.scm                   | 35 +++++++++++
 3 files changed, 99 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/patches/online-judge-tools.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 5ad5fb646f..e9a7440224 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -2132,7 +2132,8 @@ dist_patch_DATA =						\
   %D%/packages/patches/zig-do-not-link-against-librt.patch	\
   %D%/packages/patches/zig-use-system-paths.patch		\
   %D%/packages/patches/zsh-egrep-failing-test.patch		\
-  %D%/packages/patches/python-online-judge-api-client-tests.patch
+  %D%/packages/patches/python-online-judge-api-client-tests.patch \
+  %D%/packages/patches/online-judge-tools.patch
 
 MISC_DISTRO_FILES =				\
   %D%/packages/ld-wrapper.in
diff --git a/gnu/packages/patches/online-judge-tools.patch b/gnu/packages/patches/online-judge-tools.patch
new file mode 100644
index 0000000000..9e016d7104
--- /dev/null
+++ b/gnu/packages/patches/online-judge-tools.patch
@@ -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'):
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 315994e488..dad7e60961 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -24287,6 +24287,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")
-- 
2.41.0



[Message part 3 (message/rfc822, inline)]
From: Christopher Baines <mail <at> cbaines.net>
To: gemmaro <gemmaro.dev <at> gmail.com>
Cc: 65545-done <at> debbugs.gnu.org
Subject: Re: [bug#65545] [PATCH v5 2/2] gnu: Add online-judge-tools
Date: Mon, 30 Oct 2023 11:28:59 +0000
[Message part 4 (text/plain, inline)]
gemmaro <gemmaro.dev <at> gmail.com> writes:

> * gnu/packages/python-xyz.scm (online-judge-tools): New variable.
> * gnu/packages/patches/online-judge-tools.patch, gnu/local.mk: Add patch file.
> ---
>  gnu/local.mk                                  |  3 +-
>  gnu/packages/patches/online-judge-tools.patch | 62 +++++++++++++++++++
>  gnu/packages/python-xyz.scm                   | 35 +++++++++++
>  3 files changed, 99 insertions(+), 1 deletion(-)
>  create mode 100644 gnu/packages/patches/online-judge-tools.patch

Hey,

I'm not a big fan of the "big patch to disable tests" approach here, but
it works, so I've gone ahead and pushed these two patches to master as
789ef6837f9794c02bc53a854aacfdf04d3384cf.

It would be good to see if the patches could be removed in the future
though.

Thanks,

Chris
[signature.asc (application/pgp-signature, inline)]

This bug report was last modified 1 year and 260 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.