diff --git a/src/stdlib/Sys.fs b/src/stdlib/Sys.fs index fe84be6..209e68c 100644 --- a/src/stdlib/Sys.fs +++ b/src/stdlib/Sys.fs @@ -35,7 +35,7 @@ type IExports = /// Version information encoded as a single integer abstract hexversion: int /// Maximum value a variable of type int can take - abstract maxsize: int + abstract maxsize: nativeint /// Maximum Unicode code point value abstract maxunicode: int /// Module search path - list of directory names where Python looks for modules diff --git a/test/Fable.Python.Test.fsproj b/test/Fable.Python.Test.fsproj index 7b0d3b9..3c439a7 100644 --- a/test/Fable.Python.Test.fsproj +++ b/test/Fable.Python.Test.fsproj @@ -27,6 +27,9 @@ + + + diff --git a/test/TestHtml.fs b/test/TestHtml.fs new file mode 100644 index 0000000..be7d1cf --- /dev/null +++ b/test/TestHtml.fs @@ -0,0 +1,41 @@ +module Fable.Python.Tests.Html + +open Fable.Python.Testing +open Fable.Python.Html + +[] +let ``test html.escape escapes ampersand`` () = + html.escape "a & b" |> equal "a & b" + +[] +let ``test html.escape escapes less-than`` () = + html.escape "" |> equal "<tag>" + +[] +let ``test html.escape escapes double quotes by default`` () = + html.escape "\"hello\"" |> equal ""hello"" + +[] +let ``test html.escape with quote=false leaves quotes unescaped`` () = + html.escape ("\"hello\"", false) |> equal "\"hello\"" + +[] +let ``test html.escape with quote=true escapes quotes`` () = + html.escape ("\"hello\"", true) |> equal ""hello"" + +[] +let ``test html.unescape reverses escape`` () = + html.unescape "<tag>" |> equal "" + +[] +let ``test html.unescape reverses ampersand`` () = + html.unescape "a & b" |> equal "a & b" + +[] +let ``test html.unescape reverses quot`` () = + html.unescape ""hello"" |> equal "\"hello\"" + +[] +let ``test html roundtrip`` () = + let original = "
Hello & World
" + html.unescape (html.escape original) |> equal original diff --git a/test/TestSys.fs b/test/TestSys.fs new file mode 100644 index 0000000..26b7530 --- /dev/null +++ b/test/TestSys.fs @@ -0,0 +1,33 @@ +module Fable.Python.Tests.Sys + +open Fable.Python.Testing +open Fable.Python.Sys + +[] +let ``test sys.platform is non-empty string`` () = + sys.platform.Length > 0 |> equal true + +[] +let ``test sys.version is non-empty string`` () = + sys.version.Length > 0 |> equal true + +[] +let ``test sys.maxsize is positive`` () = + sys.maxsize > 0n |> equal true + +[] +let ``test sys.maxunicode is 1114111`` () = + sys.maxunicode |> equal 1114111 + +[] +let ``test sys.path has at least one element`` () = + sys.path.Count > 0 |> equal true + +[] +let ``test sys.argv has at least one element`` () = + sys.argv.Count > 0 |> equal true + +[] +let ``test sys.byteorder is little or big`` () = + let order = sys.byteorder + (order = ByteOrder.Little || order = ByteOrder.Big) |> equal true diff --git a/test/TestTime.fs b/test/TestTime.fs new file mode 100644 index 0000000..e1dba1a --- /dev/null +++ b/test/TestTime.fs @@ -0,0 +1,49 @@ +module Fable.Python.Tests.Time + +open Fable.Python.Testing +open Fable.Python.Time + +[] +let ``test time.time returns positive float`` () = + let t = time.time () + t > 0.0 |> equal true + +[] +let ``test time.monotonic returns positive float`` () = + let t = time.monotonic () + t > 0.0 |> equal true + +[] +let ``test time.perf_counter returns positive float`` () = + let t = time.perf_counter () + t > 0.0 |> equal true + +[] +let ``test time.process_time returns non-negative float`` () = + let t = time.process_time () + t >= 0.0 |> equal true + +[] +let ``test time.monotonic increases over calls`` () = + let t1 = time.monotonic () + let t2 = time.monotonic () + t2 >= t1 |> equal true + +[] +let ``test time.ctime returns non-empty string`` () = + let s = time.ctime () + s.Length > 0 |> equal true + +[] +let ``test time.ctime with seconds returns non-empty string`` () = + let s = time.ctime 0.0 + s.Length > 0 |> equal true + +[] +let ``test time.sleep does not throw`` () = + time.sleep 0.0 + +[] +let ``test time.timezone is int`` () = + let tz = time.timezone + (tz >= -50400 && tz <= 50400) |> equal true