mirror of
https://codeberg.org/guix/guix.git
synced 2025-10-02 02:15:12 +00:00
gnu: Add elixir-httpoison.
* gnu/packages/elixir-web.scm (elixir-httpoison): New variable. Change-Id: Ifeb181da3e07fd46f0044aae185a0aed63c2d25d Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
parent
22eeef9921
commit
1e3ceede32
2 changed files with 100 additions and 0 deletions
|
@ -17,6 +17,7 @@
|
||||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
(define-module (gnu packages elixir-web)
|
(define-module (gnu packages elixir-web)
|
||||||
|
#:use-module (gnu packages)
|
||||||
#:use-module (gnu packages erlang)
|
#:use-module (gnu packages erlang)
|
||||||
#:use-module (gnu packages erlang-xyz)
|
#:use-module (gnu packages erlang-xyz)
|
||||||
#:use-module (gnu packages elixir-databases)
|
#:use-module (gnu packages elixir-databases)
|
||||||
|
@ -240,6 +241,41 @@ purposes. Its goal is to be as close as possible to
|
||||||
(home-page "https://hexdocs.pm/httparrot/")
|
(home-page "https://hexdocs.pm/httparrot/")
|
||||||
(license license:expat)))
|
(license license:expat)))
|
||||||
|
|
||||||
|
(define-public elixir-httpoison
|
||||||
|
(package
|
||||||
|
(name "elixir-httpoison")
|
||||||
|
(version "2.2.3")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://github.com/edgurgel/httpoison")
|
||||||
|
(commit (string-append "v" version))))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
|
(sha256
|
||||||
|
(base32 "0k9g4dc6y30wr9ryxjs23izifpg4dqkkqk8xz39ff27jn5s97k8i"))
|
||||||
|
;; Waiting for upstream inclusion at
|
||||||
|
;; https://github.com/edgurgel/httpoison/pull/502
|
||||||
|
(patches
|
||||||
|
(search-patches "elixir-httpoison-tag-network-dependent-test-cases.patch"))))
|
||||||
|
(build-system mix-build-system)
|
||||||
|
(arguments
|
||||||
|
(list
|
||||||
|
#:test-flags
|
||||||
|
;; These tests require network access to badssl.com.
|
||||||
|
#~(list "--exclude" "network")))
|
||||||
|
(native-inputs
|
||||||
|
(list erlang-cowboy
|
||||||
|
elixir-earmark
|
||||||
|
elixir-jason
|
||||||
|
elixir-httparrot
|
||||||
|
elixir-mimic))
|
||||||
|
(propagated-inputs (list erlang-hackney))
|
||||||
|
(synopsis "Yet Another HTTP client for Elixir")
|
||||||
|
(description "Yet Another HTTP client for Elixir powered by hackney.")
|
||||||
|
(home-page "https://hexdocs.pm/httpoison/")
|
||||||
|
(license license:expat)))
|
||||||
|
|
||||||
(define-public elixir-mint
|
(define-public elixir-mint
|
||||||
(package
|
(package
|
||||||
(name "elixir-mint")
|
(name "elixir-mint")
|
||||||
|
|
|
@ -0,0 +1,64 @@
|
||||||
|
From 788c481157871fe37becb2ec0280510061174e95 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Giacomo Leidi <goodoldpaul@autistici.org>
|
||||||
|
Date: Sun, 21 Sep 2025 20:25:03 +0200
|
||||||
|
Subject: [PATCH] tests: Tag network dependent test cases.
|
||||||
|
|
||||||
|
Many environments, such as Linux distributions one, segragate builds
|
||||||
|
from accessing many system resources like Internet access. Currently it
|
||||||
|
is impossible to run the test suite offline, as it needs access to
|
||||||
|
badssl.com. This commit tags network dependent test cases to allow them
|
||||||
|
to be excluded in offline environments using mix test --exclude.
|
||||||
|
|
||||||
|
This holds at least for openSUSE Tumbleweed, NixOS, Guix System and
|
||||||
|
probably many others.
|
||||||
|
---
|
||||||
|
test/httpoison_test.exs | 5 +++++
|
||||||
|
1 file changed, 5 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/test/httpoison_test.exs b/test/httpoison_test.exs
|
||||||
|
index b260c65..f342b59 100644
|
||||||
|
--- a/test/httpoison_test.exs
|
||||||
|
+++ b/test/httpoison_test.exs
|
||||||
|
@@ -409,6 +409,7 @@ defmodule HTTPoisonTest do
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
+ @tag :network
|
||||||
|
test "expired certificate" do
|
||||||
|
assert {:error, %HTTPoison.Error{reason: {:tls_alert, {:certificate_expired, reason}}}} =
|
||||||
|
HTTPoison.get("https://expired.badssl.com/")
|
||||||
|
@@ -440,6 +441,7 @@ defmodule HTTPoisonTest do
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
+ @tag :network
|
||||||
|
test "allows changing TLS1.0 settings" do
|
||||||
|
assert {:error,
|
||||||
|
%HTTPoison.Error{
|
||||||
|
@@ -455,6 +457,7 @@ defmodule HTTPoisonTest do
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
+ @tag :network
|
||||||
|
test "allows changing TLS1.1 settings" do
|
||||||
|
assert {:error,
|
||||||
|
%HTTPoison.Error{
|
||||||
|
@@ -472,6 +475,7 @@ defmodule HTTPoisonTest do
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
+ @tag :network
|
||||||
|
test "does support tls1.2" do
|
||||||
|
if :"tlsv1.2" in :ssl.versions()[:supported] do
|
||||||
|
assert {:ok, _} = HTTPoison.get("https://tls-v1-2.badssl.com:1012/", [])
|
||||||
|
@@ -485,6 +489,7 @@ defmodule HTTPoisonTest do
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
+ @tag :network
|
||||||
|
test "invalid common name" do
|
||||||
|
assert {:error,
|
||||||
|
%HTTPoison.Error{
|
||||||
|
--
|
||||||
|
2.51.0
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue