Example #1
0
 def test_at_most_n_matcher_no_args_true(self) -> None:
     # Match a function call to "foo" with at most two arguments.
     self.assertTrue(
         matches(
             libcst.Call(libcst.Name("foo"),
                         (libcst.Arg(libcst.Integer("1")), )),
             m.Call(m.Name("foo"), (m.AtMostN(n=2), )),
         ))
     # Match a function call to "foo" with at most two arguments.
     self.assertTrue(
         matches(
             libcst.Call(
                 libcst.Name("foo"),
                 (libcst.Arg(
                     libcst.Integer("1")), libcst.Arg(libcst.Integer("2"))),
             ),
             m.Call(m.Name("foo"), (m.AtMostN(n=2), )),
         ))
     # Match a function call to "foo" with at most six arguments, the last
     # one being the integer 1.
     self.assertTrue(
         matches(
             libcst.Call(libcst.Name("foo"),
                         (libcst.Arg(libcst.Integer("1")), )),
             m.Call(m.Name("foo"),
                    [m.AtMostN(n=5), m.Arg(m.Integer("1"))]),
         ))
     # Match a function call to "foo" with at most six arguments, the last
     # one being the integer 1.
     self.assertTrue(
         matches(
             libcst.Call(
                 libcst.Name("foo"),
                 (libcst.Arg(
                     libcst.Integer("1")), libcst.Arg(libcst.Integer("2"))),
             ),
             m.Call(m.Name("foo"), (m.AtMostN(n=5), m.Arg(m.Integer("2")))),
         ))
     # Match a function call to "foo" with at most six arguments, the first
     # one being the integer 1.
     self.assertTrue(
         matches(
             libcst.Call(
                 libcst.Name("foo"),
                 (libcst.Arg(
                     libcst.Integer("1")), libcst.Arg(libcst.Integer("2"))),
             ),
             m.Call(m.Name("foo"), (m.Arg(m.Integer("1")), m.AtMostN(n=5))),
         ))
     # Match a function call to "foo" with at most six arguments, the first
     # one being the integer 1.
     self.assertTrue(
         matches(
             libcst.Call(
                 libcst.Name("foo"),
                 (libcst.Arg(
                     libcst.Integer("1")), libcst.Arg(libcst.Integer("2"))),
             ),
             m.Call(m.Name("foo"), (m.Arg(m.Integer("1")), m.ZeroOrOne())),
         ))
Example #2
0
 def test_at_most_n_matcher_args_true(self) -> None:
     # Match a function call to "foo" with at most two arguments, both of which
     # are the integer 1.
     self.assertTrue(
         matches(
             cst.Call(func=cst.Name("foo"),
                      args=(cst.Arg(cst.Integer("1")), )),
             m.Call(func=m.Name("foo"),
                    args=(m.AtMostN(m.Arg(m.Integer("1")), n=2), )),
         ))
     # Match a function call to "foo" with at most two arguments, both of which
     # can be the integer 1 or 2.
     self.assertTrue(
         matches(
             cst.Call(
                 func=cst.Name("foo"),
                 args=(cst.Arg(cst.Integer("1")),
                       cst.Arg(cst.Integer("2"))),
             ),
             m.Call(
                 func=m.Name("foo"),
                 args=(m.AtMostN(m.Arg(
                     m.OneOf(m.Integer("1"), m.Integer("2"))),
                                 n=2), ),
             ),
         ))
     # Match a function call to "foo" with at most two arguments, the first
     # one being the integer 1 and the second one, if included, being the
     # integer 2.
     self.assertTrue(
         matches(
             cst.Call(
                 func=cst.Name("foo"),
                 args=(cst.Arg(cst.Integer("1")),
                       cst.Arg(cst.Integer("2"))),
             ),
             m.Call(
                 func=m.Name("foo"),
                 args=(m.Arg(m.Integer("1")),
                       m.ZeroOrOne(m.Arg(m.Integer("2")))),
             ),
         ))
     # Match a function call to "foo" with at most six arguments, the first
     # one being the integer 1 and the second one, if included, being the
     # integer 2.
     self.assertTrue(
         matches(
             cst.Call(
                 func=cst.Name("foo"),
                 args=(cst.Arg(cst.Integer("1")),
                       cst.Arg(cst.Integer("2"))),
             ),
             m.Call(
                 func=m.Name("foo"),
                 args=(m.Arg(m.Integer("1")),
                       m.ZeroOrOne(m.Arg(m.Integer("2")))),
             ),
         ))
Example #3
0
 def test_at_most_n_matcher_no_args_false(self) -> None:
     # Fail to match a function call to "foo" with at most two arguments.
     self.assertFalse(
         matches(
             cst.Call(
                 func=cst.Name("foo"),
                 args=(
                     cst.Arg(cst.Integer("1")),
                     cst.Arg(cst.Integer("2")),
                     cst.Arg(cst.Integer("3")),
                 ),
             ),
             m.Call(func=m.Name("foo"), args=(m.AtMostN(n=2),)),
         )
     )
     # Fail to match a function call to "foo" with at most two arguments,
     # the last one being the integer 3.
     self.assertFalse(
         matches(
             cst.Call(
                 func=cst.Name("foo"),
                 args=(
                     cst.Arg(cst.Integer("1")),
                     cst.Arg(cst.Integer("2")),
                     cst.Arg(cst.Integer("3")),
                 ),
             ),
             m.Call(
                 func=m.Name("foo"), args=(m.AtMostN(n=1), m.Arg(m.Integer("3")))
             ),
         )
     )
     # Fail to match a function call to "foo" with at most two arguments,
     # the last one being the integer 3.
     self.assertFalse(
         matches(
             cst.Call(
                 func=cst.Name("foo"),
                 args=(
                     cst.Arg(cst.Integer("1")),
                     cst.Arg(cst.Integer("2")),
                     cst.Arg(cst.Integer("3")),
                 ),
             ),
             m.Call(func=m.Name("foo"), args=(m.ZeroOrOne(), m.Arg(m.Integer("3")))),
         )
     )
Example #4
0
 def test_at_most_n_matcher_args_false(self) -> None:
     # Fail to match a function call to "foo" with at most three arguments,
     # all of which are the integer 4.
     self.assertFalse(
         matches(
             libcst.Call(
                 libcst.Name("foo"),
                 (
                     libcst.Arg(libcst.Integer("1")),
                     libcst.Arg(libcst.Integer("2")),
                     libcst.Arg(libcst.Integer("3")),
                 ),
             ),
             m.Call(m.Name("foo"),
                    (m.AtMostN(m.Arg(m.Integer("4")), n=3), )),
         ))