A batteries included HTTP/1.1 client in OCaml
at main 76 lines 2.9 kB view raw
1(*--------------------------------------------------------------------------- 2 Copyright (c) 2025 Anil Madhavapeddy <anil@recoil.org>. All rights reserved. 3 SPDX-License-Identifier: ISC 4 ---------------------------------------------------------------------------*) 5 6(** Tests for Timeout module *) 7 8module Timeout = Requests.Timeout 9 10(** {1 none Tests} *) 11 12let test_none () = 13 let t = Timeout.none in 14 Alcotest.(check (option (float 0.001))) "connect" None (Timeout.connect t); 15 Alcotest.(check (option (float 0.001))) "read" None (Timeout.read t); 16 Alcotest.(check (option (float 0.001))) "total" None (Timeout.total t); 17 Alcotest.(check (option (float 0.001))) 18 "expect_100_continue" None 19 (Timeout.expect_100_continue t) 20 21(** {1 default Tests} *) 22 23let test_default () = 24 let t = Timeout.default in 25 Alcotest.(check (option (float 0.001))) 26 "connect" (Some 10.0) (Timeout.connect t); 27 Alcotest.(check (option (float 0.001))) "read" (Some 30.0) (Timeout.read t); 28 Alcotest.(check (option (float 0.001))) "total" None (Timeout.total t); 29 Alcotest.(check (option (float 0.001))) 30 "expect_100_continue" (Some 1.0) 31 (Timeout.expect_100_continue t) 32 33(** {1 create Tests} *) 34 35let test_create_with_values () = 36 let t = Timeout.v ~connect:5.0 ~read:15.0 () in 37 Alcotest.(check (option (float 0.001))) 38 "connect" (Some 5.0) (Timeout.connect t); 39 Alcotest.(check (option (float 0.001))) "read" (Some 15.0) (Timeout.read t); 40 Alcotest.(check (option (float 0.001))) "total" None (Timeout.total t); 41 Alcotest.(check (option (float 0.001))) 42 "expect_100_continue" None 43 (Timeout.expect_100_continue t) 44 45let test_create_no_args () = 46 let t = Timeout.v () in 47 Alcotest.(check (option (float 0.001))) "connect" None (Timeout.connect t); 48 Alcotest.(check (option (float 0.001))) "read" None (Timeout.read t); 49 Alcotest.(check (option (float 0.001))) "total" None (Timeout.total t); 50 Alcotest.(check (option (float 0.001))) 51 "expect_100_continue" None 52 (Timeout.expect_100_continue t) 53 54let test_create_all_fields () = 55 let t = 56 Timeout.v ~connect:1.0 ~read:2.0 ~total:10.0 ~expect_100_continue:0.5 () 57 in 58 Alcotest.(check (option (float 0.001))) 59 "connect" (Some 1.0) (Timeout.connect t); 60 Alcotest.(check (option (float 0.001))) "read" (Some 2.0) (Timeout.read t); 61 Alcotest.(check (option (float 0.001))) "total" (Some 10.0) (Timeout.total t); 62 Alcotest.(check (option (float 0.001))) 63 "expect_100_continue" (Some 0.5) 64 (Timeout.expect_100_continue t) 65 66(** {1 Test Suite} *) 67 68let suite = 69 ( "timeout", 70 [ 71 Alcotest.test_case "all fields None" `Quick test_none; 72 Alcotest.test_case "has expected defaults" `Quick test_default; 73 Alcotest.test_case "with connect and read" `Quick test_create_with_values; 74 Alcotest.test_case "no args all None" `Quick test_create_no_args; 75 Alcotest.test_case "all fields set" `Quick test_create_all_fields; 76 ] )