Exemple #1
0
    def test_items(self):
        layout = BorderLayout()

        container = Frame(self.context, layout)

        child1 = Panel(self.context)
        child2 = Panel(self.context)
        child3 = Panel(self.context)
        child4 = Panel(self.context)
        child5 = Panel(self.context)

        container.add(child1)
        container.add(child2, Border.Left)
        container.add(child3, Border.Top, Insets(2, 2, 2, 2))
        container.add(child4, Border.Right, padding=Insets(5, 5, 5, 5))
        container.add(child5,
                      region=Border.Bottom,
                      padding=Insets(10, 10, 10, 10))

        def assert_item(item: BorderItem, child: Component, border: Border,
                        padding: Insets) -> None:
            self.assertEqual(child, item.component.unwrap())
            self.assertEqual(border, item.border)
            self.assertEqual(padding, item.padding)

        assert_item(layout.areas[Border.Center], child1, Border.Center,
                    Insets(0, 0, 0, 0))
        assert_item(layout.areas[Border.Top], child3, Border.Top,
                    Insets(2, 2, 2, 2))
        assert_item(layout.areas[Border.Right], child4, Border.Right,
                    Insets(5, 5, 5, 5))
        assert_item(layout.areas[Border.Bottom], child5, Border.Bottom,
                    Insets(10, 10, 10, 10))
        assert_item(layout.areas[Border.Left], child2, Border.Left,
                    Insets(0, 0, 0, 0))

        container.add(child1, Border.Right)
        container.remove(child2)
        container.remove(child3)

        assert_item(layout.areas[Border.Right], child1, Border.Right,
                    Insets(0, 0, 0, 0))

        # noinspection PyTypeChecker
        children = Fold.collect_all(
            map(lambda a: a.component, layout.areas.values()), Some(
                ())).unwrap()

        self.assertEqual({child5, child1}, set(children))
        self.assertEqual(Nothing, layout.areas[Border.Top].component)
        self.assertEqual(Some(child1), layout.areas[Border.Right].component)
        self.assertEqual(Some(child5), layout.areas[Border.Bottom].component)
        self.assertEqual(Nothing, layout.areas[Border.Left].component)
Exemple #2
0
def test_collect_all_reader_result(iterable, sequence):
    """Iterable for ``ReaderResult`` and ``Fold``."""
    assert Fold.collect_all(
        iterable, sequence.from_value(()),
    )(...) == sequence(...)
Exemple #3
0
def test_fold_collect_recursion_limit():
    """Ensures that ``.collect_all`` method is recurion safe."""
    limit = sys.getrecursionlimit() + 1
    iterable = (Success(1) for _ in range(limit))
    expected = Success((1, ) * limit)
    assert Fold.collect_all(iterable, Success(())) == expected