mirror of
https://github.com/facebook/sapling.git
synced 2024-12-29 16:12:23 +03:00
ab3a7cb21f
Summary: In preparation for merging fb-mercurial sources to the Eden repository, move everything from the top-level directory into an `eden/scm` subdirectory.
67 lines
1.4 KiB
Python
67 lines
1.4 KiB
Python
# Copyright 2019 Facebook, Inc.
|
|
#
|
|
# This software may be used and distributed according to the terms of the
|
|
# GNU General Public License version 2 or any later version.
|
|
# fmt: off
|
|
|
|
from __future__ import absolute_import
|
|
|
|
import os
|
|
import sys
|
|
|
|
from testutil import argspans
|
|
|
|
|
|
try:
|
|
import parso
|
|
|
|
parso.parse
|
|
except ImportError:
|
|
sys.stderr.write("skipped: missing feature: parso\n")
|
|
sys.exit(80)
|
|
|
|
|
|
def testfunc():
|
|
def foo(x, y):
|
|
filepath, lineno, indent, spans = argspans.argspans()
|
|
assert os.path.basename(filepath) == "test-argspans.py"
|
|
assert lineno == 34
|
|
assert indent == 12
|
|
assert spans == [((34, 16), (34, 17)), ((34, 19), (34, 24))]
|
|
|
|
if True:
|
|
if True:
|
|
foo(1, "abc")
|
|
|
|
def nested(x, y):
|
|
def inner1(x, y):
|
|
inner2(x, y)
|
|
|
|
def inner2(x, y):
|
|
filepath, lineno, indent, spans = argspans.argspans(nested=2)
|
|
assert lineno == 48
|
|
assert indent == 4
|
|
assert spans == [((48, 11), (48, 13)), ((48, 15), (48, 20))]
|
|
|
|
inner1(x, y)
|
|
|
|
nested(42, "def")
|
|
|
|
|
|
def testoperator():
|
|
class A(object):
|
|
def __eq__(self, rhs):
|
|
filepath, lineno, indent, spans = argspans.argspans()
|
|
assert indent == 4
|
|
assert spans == [((58, 11), (60, 7))]
|
|
|
|
A() == """multi
|
|
line
|
|
"""
|
|
|
|
|
|
testfunc()
|
|
testoperator()
|
|
|
|
# fmt: on
|