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.+"))))' )
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")
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"
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
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")]
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]