Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/stdlib/Sys.fs
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
3 changes: 3 additions & 0 deletions test/Fable.Python.Test.fsproj
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,9 @@
<Compile Include="TestMath.fs" />
<Compile Include="TestRandom.fs" />
<Compile Include="TestBase64.fs" />
<Compile Include="TestHtml.fs" />
<Compile Include="TestSys.fs" />
<Compile Include="TestTime.fs" />
<Compile Include="TestString.fs" />
<Compile Include="TestPydantic.fs" />
<Compile Include="TestFastAPI.fs" />
Expand Down
41 changes: 41 additions & 0 deletions test/TestHtml.fs
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
module Fable.Python.Tests.Html

open Fable.Python.Testing
open Fable.Python.Html

[<Fact>]
let ``test html.escape escapes ampersand`` () =
html.escape "a & b" |> equal "a &amp; b"

[<Fact>]
let ``test html.escape escapes less-than`` () =
html.escape "<tag>" |> equal "&lt;tag&gt;"

[<Fact>]
let ``test html.escape escapes double quotes by default`` () =
html.escape "\"hello\"" |> equal "&quot;hello&quot;"

[<Fact>]
let ``test html.escape with quote=false leaves quotes unescaped`` () =
html.escape ("\"hello\"", false) |> equal "\"hello\""

[<Fact>]
let ``test html.escape with quote=true escapes quotes`` () =
html.escape ("\"hello\"", true) |> equal "&quot;hello&quot;"

[<Fact>]
let ``test html.unescape reverses escape`` () =
html.unescape "&lt;tag&gt;" |> equal "<tag>"

[<Fact>]
let ``test html.unescape reverses ampersand`` () =
html.unescape "a &amp; b" |> equal "a & b"

[<Fact>]
let ``test html.unescape reverses quot`` () =
html.unescape "&quot;hello&quot;" |> equal "\"hello\""

[<Fact>]
let ``test html roundtrip`` () =
let original = "<div class=\"main\">Hello & World</div>"
html.unescape (html.escape original) |> equal original
33 changes: 33 additions & 0 deletions test/TestSys.fs
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
module Fable.Python.Tests.Sys

open Fable.Python.Testing
open Fable.Python.Sys

[<Fact>]
let ``test sys.platform is non-empty string`` () =
sys.platform.Length > 0 |> equal true

[<Fact>]
let ``test sys.version is non-empty string`` () =
sys.version.Length > 0 |> equal true

[<Fact>]
let ``test sys.maxsize is positive`` () =
sys.maxsize > 0n |> equal true

[<Fact>]
let ``test sys.maxunicode is 1114111`` () =
sys.maxunicode |> equal 1114111

[<Fact>]
let ``test sys.path has at least one element`` () =
sys.path.Count > 0 |> equal true

[<Fact>]
let ``test sys.argv has at least one element`` () =
sys.argv.Count > 0 |> equal true

[<Fact>]
let ``test sys.byteorder is little or big`` () =
let order = sys.byteorder
(order = ByteOrder.Little || order = ByteOrder.Big) |> equal true
49 changes: 49 additions & 0 deletions test/TestTime.fs
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
module Fable.Python.Tests.Time

open Fable.Python.Testing
open Fable.Python.Time

[<Fact>]
let ``test time.time returns positive float`` () =
let t = time.time ()
t > 0.0 |> equal true

[<Fact>]
let ``test time.monotonic returns positive float`` () =
let t = time.monotonic ()
t > 0.0 |> equal true

[<Fact>]
let ``test time.perf_counter returns positive float`` () =
let t = time.perf_counter ()
t > 0.0 |> equal true

[<Fact>]
let ``test time.process_time returns non-negative float`` () =
let t = time.process_time ()
t >= 0.0 |> equal true

[<Fact>]
let ``test time.monotonic increases over calls`` () =
let t1 = time.monotonic ()
let t2 = time.monotonic ()
t2 >= t1 |> equal true

[<Fact>]
let ``test time.ctime returns non-empty string`` () =
let s = time.ctime ()
s.Length > 0 |> equal true

[<Fact>]
let ``test time.ctime with seconds returns non-empty string`` () =
let s = time.ctime 0.0
s.Length > 0 |> equal true

[<Fact>]
let ``test time.sleep does not throw`` () =
time.sleep 0.0

[<Fact>]
let ``test time.timezone is int`` () =
let tz = time.timezone
(tz >= -50400 && tz <= 50400) |> equal true
Loading