Anna Schumaker
5d3fb980af
I implement Integer, Float, and String entries that update their "value" property based on the user-provided text when the Enter key is pressed. Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
93 lines
3.0 KiB
Python
93 lines
3.0 KiB
Python
# Copyright 2022 (c) Anna Schumaker.
|
|
"""Tests our custom Gtk.Entries."""
|
|
import unittest
|
|
import emmental.entry
|
|
from gi.repository import Gtk
|
|
|
|
|
|
class TestFilterEntry(unittest.TestCase):
|
|
"""Test our custom FilterEntry."""
|
|
|
|
def setUp(self):
|
|
"""Set up common variables."""
|
|
self.entry = emmental.entry.Filter(what="tests")
|
|
|
|
def test_init(self):
|
|
"""Test that the entry is configured correctly."""
|
|
self.assertIsInstance(self.entry, Gtk.SearchEntry)
|
|
self.assertEqual(self.entry.get_property("placeholder-text"),
|
|
"type to filter tests")
|
|
self.assertEqual(self.entry.get_placeholder_text(),
|
|
"type to filter tests")
|
|
|
|
def test_get_query(self):
|
|
"""Test the get_query() function."""
|
|
self.assertEqual(self.entry.get_query(), None)
|
|
self.entry.set_text("^test")
|
|
self.assertEqual(self.entry.get_query(), "test*")
|
|
|
|
|
|
class TestValueEntry(unittest.TestCase):
|
|
"""Test our custom Value Entries."""
|
|
|
|
def test_integer(self):
|
|
"""Test the Integer entry."""
|
|
entry = emmental.entry.Integer()
|
|
self.assertIsInstance(entry, emmental.entry.ValueBase)
|
|
self.assertIsInstance(entry, emmental.entry.Gtk.Entry)
|
|
self.assertEqual(entry.get_input_purpose(), Gtk.InputPurpose.DIGITS)
|
|
|
|
self.assertEqual(entry.value, 0)
|
|
self.assertEqual(entry.get_text(), "0")
|
|
|
|
entry.value = 42
|
|
self.assertEqual(entry.get_text(), "42")
|
|
|
|
entry.set_text("12345")
|
|
entry.emit("activate")
|
|
self.assertEqual(entry.value, 12345)
|
|
|
|
entry2 = emmental.entry.Integer(value=42)
|
|
self.assertEqual(entry2.value, 42)
|
|
self.assertEqual(entry2.get_text(), "42")
|
|
|
|
def test_float(self):
|
|
"""Test the Float entry."""
|
|
entry = emmental.entry.Float()
|
|
self.assertIsInstance(entry, emmental.entry.ValueBase)
|
|
self.assertEqual(entry.get_input_purpose(), Gtk.InputPurpose.NUMBER)
|
|
|
|
self.assertEqual(entry.value, 0.0)
|
|
self.assertEqual(entry.get_text(), "0.0")
|
|
|
|
entry.value = 4.2
|
|
self.assertEqual(entry.get_text(), "4.2")
|
|
|
|
entry.set_text("1.2345")
|
|
entry.emit("activate")
|
|
self.assertEqual(entry.value, 1.2345)
|
|
|
|
entry2 = emmental.entry.Float(value=4.2)
|
|
self.assertEqual(entry2.value, 4.2)
|
|
self.assertEqual(entry2.get_text(), "4.2")
|
|
|
|
def test_string(self):
|
|
"""Test the String entry."""
|
|
entry = emmental.entry.String()
|
|
self.assertIsInstance(entry, emmental.entry.ValueBase)
|
|
self.assertEqual(entry.get_input_purpose(), Gtk.InputPurpose.FREE_FORM)
|
|
|
|
self.assertEqual(entry.value, "")
|
|
self.assertEqual(entry.get_text(), "")
|
|
|
|
entry.value = "text"
|
|
self.assertEqual(entry.get_text(), "text")
|
|
|
|
entry.set_text("other text")
|
|
entry.emit("activate")
|
|
self.assertEqual(entry.value, "other text")
|
|
|
|
entry2 = emmental.entry.String(value="text")
|
|
self.assertEqual(entry2.value, "text")
|
|
self.assertEqual(entry2.get_text(), "text")
|