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