Esempio n. 1
0
 def test_no_recursive(self):
     p = pattern(re("a*.f"), re("z.+"))
     p2 = pattern(p)
     assert id(p) == id(p2)
     assert p == p2
     representation = str(p2).replace("'", '"')
     assert (
         representation ==
         'Pattern((Pattern(re.compile("a*.f")), Pattern(re.compile("z.+"))))'
     )
Esempio n. 2
0
    async def test_select_callback(self):
        m = Mailbox()

        async def selector(selection):
            value = await m.select(selection)
            m.task_done()
            return value

        async def putter(*values):
            for value in values:
                await m.put(value)
                await asyncio.sleep(0)
            return "ALL GOOD"

        SELECTION = {
            ("a", ...): (lambda x: ("MATCH1", x)),
            re("asdf.*"): (lambda x: ("MATCH2", x)),
        }

        example1 = (
            selector(SELECTION),
            putter(1, 2, "qwerty", ("b", 1), ("a", 42), "asdfg"),
        )
        a, b = await asyncio.gather(*example1, return_exceptions=True)
        example2 = (
            selector(SELECTION),
            putter(1, 2, "qwerty", "asdfg", ("b", 1), ("a", 42)),
        )
        c, d = await asyncio.gather(*example2, return_exceptions=True)
        assert b == d == "ALL GOOD"
        assert a == ("MATCH1", ("a", 42))
        assert c == ("MATCH2", "asdfg")
Esempio n. 3
0
        async def selector():
            assert await m.select(("a", Anything)) == ("a", 1)
            assert m.qsize() == 4
            assert await m.select(glob("feg*")) == "feg"
            assert m.qsize() == 3
            assert await m.get() == "abc-123"
            assert m.qsize() == 2
            assert await m.select(re("abc.*")) == "abc-456"
            assert m.qsize() == 1
            assert await m.get() == "hjk-000"
            assert m.qsize() == 0

            return "ALL GOOD"
Esempio n. 4
0
    def test_select_nowait(self):
        m = Mailbox()
        for value in ("abc-123", "feg", ("a", 1), "abc-456", "hjk-000"):
            m.put_nowait(value)

        assert m.select_nowait(("a", Anything)) == ("a", 1)
        assert m.qsize() == 4
        assert m.select_nowait(glob("feg*")) == "feg"
        assert m.qsize() == 3
        assert m.get_nowait() == "abc-123"
        assert m.qsize() == 2
        assert m.select_nowait(re("abc.*")) == "abc-456"
        assert m.qsize() == 1
        assert m.get_nowait() == "hjk-000"
        assert m.qsize() == 0
Esempio n. 5
0
 def test_fnmatch__regex(self, examples):
     p = pattern(glob("a*f"), re("z.+"))
     result = [e for e in examples if p(e)]
     assert len(result) == 1
     assert result == [("asdf", "zxcv")]
Esempio n. 6
0
 def test_find_re(self, examples):
     p = re("ab.*")
     results = [v for k, v in examples if p(k)]
     assert len(results) == 2
     assert results == [1, 2]