aboutsummaryrefslogtreecommitdiff
path: root/libs/plugin_python/tests/python/test_guessed_string.py
diff options
context:
space:
mode:
Diffstat (limited to 'libs/plugin_python/tests/python/test_guessed_string.py')
-rw-r--r--libs/plugin_python/tests/python/test_guessed_string.py36
1 files changed, 36 insertions, 0 deletions
diff --git a/libs/plugin_python/tests/python/test_guessed_string.py b/libs/plugin_python/tests/python/test_guessed_string.py
new file mode 100644
index 0000000..204e1f1
--- /dev/null
+++ b/libs/plugin_python/tests/python/test_guessed_string.py
@@ -0,0 +1,36 @@
+import mobase
+
+import mobase_tests.guessed_string as m
+
+
+def test_guessed_string():
+ # empty string
+ gs = mobase.GuessedString()
+
+ assert len(gs.variants()) == 0
+ assert not gs.variants()
+ assert str(gs) == ""
+
+ # automatic conversion from string
+ assert m.get_value("test") == "test"
+ assert m.get_variants("test") == {"test"}
+
+ # update
+ gs = mobase.GuessedString("fallback", mobase.GuessQuality.FALLBACK)
+ assert str(gs) == "fallback"
+
+ gs.update("good", mobase.GuessQuality.GOOD)
+ assert str(gs) == "good"
+ assert gs.variants() == {"fallback", "good"}
+
+ # back-and-forth
+ gs = mobase.GuessedString()
+ assert str(gs) == ""
+
+ def _update(gs: mobase.GuessedString):
+ gs.update("test")
+
+ m.set_from_callback(gs, _update)
+ assert str(gs) == "test"
+
+ assert m.get_from_callback(_update) == "test"