~ruther/guix-local

e7d5d3fb50a7605978c28dc6233a5a94afa14569 — Nicolas Graves 10 months ago d063e42
gnu: python-av: Download testdata to support tests.

* gnu/packages/python-xyz.scm (python-av-testdata): New variable.
  (python-av)[arguments]{test-flags}: Adapt field.
  {phases}: Add phase 'pre-check.

Change-Id: I0d84aafc05a5b1aec6b3905f99783fea2d45a676
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
1 files changed, 61 insertions(+), 75 deletions(-)

M gnu/packages/python-xyz.scm
M gnu/packages/python-xyz.scm => gnu/packages/python-xyz.scm +61 -75
@@ 309,6 309,7 @@
  #:use-module (guix git-download)
  #:use-module (guix gexp)
  #:use-module (guix utils)
  #:use-module (ice-9 match)
  #:use-module (srfi srfi-1)
  #:use-module (srfi srfi-26))



@@ 12611,6 12612,57 @@ converting, and viewing many of the proprietary file formats used to store
experimental data and metadata at the Laboratory for Fluorescence Dynamics.")
    (license license:bsd-3)))

;; ~8Mo of test files.
(define python-av-testdata
  (file-union
   "python-av-testdata"
   (cons*
    (let ((file "pexels/time-lapse-video-of-night-sky-857195.mp4"))
      `(,(string-append "pyav-curated/" file)
        ,(origin
           (method url-fetch)
           (uri (string-append "https://pyav.org/datasets/" file))
           (sha256
            (base32 "10fjs2gyha88gzv7pv3njv0fimv61ihz39p1556qazm90xbknzgb")))))
    (map
     (match-lambda
       ((file . hash)
        (list (string-append "fate-suite/" file)
              (origin
                (method url-fetch)
                (uri (string-append "http://fate.ffmpeg.org/fate-suite/" file))
                (sha256 (base32 hash))))))
     '(("aac/latm_stereo_to_51.ts" .
        "05h8389i944gb7f2y9c7848vqn8xz1mnm602fwala85npj4z8p4m")
       ("amv/MTV_high_res_320x240_sample_Penguin_Joke_MTV_from_WMV.amv" .
        "1hiifhdmd0ygzny5mplqdxl3dh9g95384ilkr4ccwv5l9y7hrmiv")
       ("audio-reference/chorusnoise_2ch_44kHz_s16.wav" .
        "06xybcnv7max9mmj6f1fw8rwz2aawhcyx2wgj1gmn1142kk431ra")
       ("h264/interlaced_crop.mp4" .
        "04bcmwd6scqn63y6p8i5srbjh9jq1sc95q6vy7srwfhzwxl9cma9")
       ("hap/HAPQA_NoSnappy_127x1.mov" .
        "1kvf8xs5v29sjqk2p07arl2hlp9z7hb1lb4202v4iqiwva1jmiaq")
       ("mkv/codec_delay_opus.mkv" .
        "0ll3qnmxnkhqxbh6s2a3clbkbhw5bsbfw6mh6kxdsa463iyyka8r")
       ("mov/displaymatrix.mov" .
        "1d4jp93hdyfhasxhqmx8lliwsa2w1kv2jj1qh6fqs74aqb6kzb82")
       ("mov/mov-1elist-ends-last-bframe.mov" .
        "04lyjsm8zncw9aac7vmkc2h45dcyb6y8643s3pg3rgzgcgqkq3nn")
       ("mov/white_zombie_scrunch-part.mov" .
        "07wg7mxa799z8dcvnbbrr9f0b5l6r42bd7d414isk3kc3jw0z6ka")
       ("mpeg2/mpeg2_field_encoding.ts" .
        "1f3waj8jhp6v655hnqpxi2bx3b36976vdjmr74hjr7jv2hx3724n")
       ("mxf/track_01_v02.mxf" .
        "04gpbma4kxvhn4dr1sh2k4pq2kbpmnmk2s2bdhq081jzap2983q1")
       ("png1/55c99e750a5fd6_50314226.png" .
        "05rha9vdix0wfibrhpaknh9fzj0cv84q6d2ypxq1wc0y328fc068")
       ("qtrle/aletrek-rle.mov" .
        "1n6ksjrqrb7gnbvzhj58y5z5jx6bmpgg7lxwzvnbfg9f9ib2yxdr")
       ("sub/MovText_capability_tester.mp4" .
        "07znmm4bhnp5f40yksnpf7ws94yflsbv169ydkga6rdby6ys2sv3")
       ("sub/vobsub.sub" .
        "12rwhnv1k7mngvyq026f2xd9dpd9mxmwg82sa9p5r8z54hrw8sjz"))))))

(define-public python-av
  (package
    (name "python-av")


@@ 12626,87 12678,21 @@ experimental data and metadata at the Laboratory for Fluorescence Dynamics.")
     (list
      #:test-flags
      #~(list
         ;; Tests require outbound access to download data samples from
         ;; http://fate.ffmpeg.org/fate-suite:
         ;;
         ;; E urllib.error.URLError: <urlopen error [Errno -3]
         ;; Temporary failure in name resolution>
         ;;
         "--ignore=tests/test_doctests.py"
         "--ignore=tests/test_timeout.py"
         ;; See: <https://github.com/PyAV-Org/PyAV/issues/1942>.
         "-k" (string-join
               (list "not test_bits_per_coded_sample"
                     "test_codec_delay"
                     "test_codec_tag"
                     "test_container_probing"
                     "test_data"
                     "test_decode_audio_sample_count"
                     "test_decode_close_then_use"
                     "test_decode_half"
                     "test_decoded_motion_vectors"
                     "test_decoded_motion_vectors_no_flag"
                     "test_decoded_time_base"
                     "test_decoded_video_frame_count"
                     "test_encoding_aac"
                     "test_encoding_dnxhd"
                     "test_encoding_dvvideo"
                     "test_encoding_h264"
                     "test_encoding_mjpeg"
                     "test_encoding_mp2"
                     "test_encoding_mpeg1video"
                     "test_encoding_mpeg4"
                     "test_encoding_pcm_s24le"
                     "test_encoding_png"
                     "test_encoding_tiff"
                     "test_encoding_xvid"
                     "test_filter_flush"
                     "test_filter_h264_mp4toannexb"
                     "test_filter_output_parameters"
                     "test_flush_decoded_video_frame_count"
                     "test_is_corrupt"
                     "test_is_discard"
                     "test_is_disposable"
                     "test_is_keyframe"
                     "test_movtext"
                     "test_noside_data"
                     "test_opaque"
                     "test_parse"
                     "test_path_input"
                     "test_path_output"
                     "test_penguin_joke"
                     "test_pts_assertion_same_rate"
                     "test_reading_from_buffer"
                     "test_reading_from_buffer_no_seek"
                     "test_reading_from_file"
                     "test_reading_from_pipe_readonly"
                     "test_reading_from_write_readonly"
                     "test_roundtrip"
                     "test_seek_end"
                     "test_seek_float"
                     "test_seek_int64"
                     "test_seek_middle"
                     "test_seek_start"
                     "test_selection"
                     "test_set_duration"
                     "test_side_data"
                     "test_sky_timelapse"
                     "test_str_input"
                     "test_str_output"
                     "test_stream_probing"
                     "test_stream_seek"
                     "test_stream_tuples"
                     "test_subtitle_flush"
                     "test_transcode"
                     "test_vobsub"
                     "test_writing_to_custom_io_dash"
                     "test_writing_to_custom_io_image2")
               (list "not test_pts_assertion_same_rate"
                     "test_writing_to_custom_io_dash")
               " and not "))
      #:phases
      #~(modify-phases %standard-phases
          (add-before 'check 'build-extensions
            (lambda _
              (invoke "python" "setup.py" "build_ext" "--inplace"))))))
              (invoke "python" "setup.py" "build_ext" "--inplace")))
          (add-before 'check 'pre-check
            (lambda _
              (setenv "PYAV_TESTDATA_DIR" #+python-av-testdata)
              (substitute* "tests/common.py"
                (("^os\\.environ\\[\"PYAV_TESTDATA_DIR\"\\] = asset\\(\\)")
                 "os.environ.setdefault(\"PYAV_TESTDATA_DIR\", asset())")))))))
    (native-inputs
     (list pkg-config
           python-cython