# 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")