##// END OF EJS Templates
revlog: subclass the new `repository.iverifyproblem` Protocol class...
revlog: subclass the new `repository.iverifyproblem` Protocol class This is the same transformation as 3a90a6fd710d did for dirstate, but the CamelCase naming was already cleaned up here. We shouldn't have to explicitly subclass, but I'm doing so to test the interplay of regular attributes and the `attrs` class. Also, PyCharm has a nifty feature that puts a jump point in the gutter to navigate back and forth between the base class and subclasses (and override functions and base class functions) when there's an explicit subclassing. Additionally, PyCharm will immediately flag signature mismatches without a 40m pytype run.

File last commit:

r34793:3b4b3813 default
r53365:4ef6dbc2 default
Show More
test-hgweb-annotate-whitespace.t
788 lines | 18.4 KiB | text/troff | Tads3Lexer
/ tests / test-hgweb-annotate-whitespace.t
Gregory Szorc
tests: add tests for hgweb annotate output...
r34390 #require serve
Create a repo with whitespace only changes
$ hg init repo-with-whitespace
$ cd repo-with-whitespace
$ cat > foo << EOF
> line 0
> line 1
> line 2
> line 3
> EOF
$ hg -q commit -A -m 'commit 0'
$ cat > foo << EOF
> line 0
> line 1 modified by 1
> line 2
> line 3
> EOF
$ hg commit -m 'commit 1'
$ cat > foo << EOF
> line 0
> line 1 modified by 1
> line 2
> line 3
> EOF
$ hg commit -m 'commit 2 (leading whitespace on line 2)'
$ cat > foo << EOF
> line 0
> line 1 modified by 1
> line 2
> EOF
Need to use printf to avoid check-code complaining about trailing whitespace.
$ printf 'line 3 \n' >> foo
$ hg commit -m 'commit 3 (trailing whitespace on line 3)'
$ cat > foo << EOF
> line 0
> line 1 modified by 1
> line 2
> EOF
$ printf 'line 3 \n' >> foo
$ hg commit -m 'commit 4 (intra whitespace on line 0)'
$ cat > foo << EOF
> line 0
>
> line 1 modified by 1
> line 2
> EOF
$ printf 'line 3 \n' >> foo
$ hg commit -m 'commit 5 (add blank line between line 0 and 1)'
$ cat > foo << EOF
> line 0
>
>
> line 1 modified by 1
> line 2
> EOF
$ printf 'line 3 \n' >> foo
$ hg commit -m 'commit 6 (add another blank line between line 0 and 1)'
$ hg log -G -T '{rev}:{node|short} {desc}'
@ 6:9d1b2c7db017 commit 6 (add another blank line between line 0 and 1)
|
o 5:400ef1d40470 commit 5 (add blank line between line 0 and 1)
|
o 4:08adbe269f24 commit 4 (intra whitespace on line 0)
|
o 3:dcb62cfbfc9b commit 3 (trailing whitespace on line 3)
|
o 2:6bdb694e7b8c commit 2 (leading whitespace on line 2)
|
o 1:23e1e37387dc commit 1
|
o 0:b9c578134d72 commit 0
$ hg serve -p $HGPORT -d --pid-file hg.pid
$ cat hg.pid >> $DAEMON_PIDS
Saurabh Singh
test-hgweb-annotate-whitespace: make test compatible with chg...
r34793 $ hg serve --config annotate.ignorews=true -p $HGPORT1 -d --pid-file hg.pid
Gregory Szorc
tests: add tests for hgweb annotate output...
r34390 $ cat hg.pid >> $DAEMON_PIDS
$ cd ..
Annotate works
$ get-with-headers.py --json $LOCALIP:$HGPORT 'json-annotate/9d1b2c7db017/foo'
200 Script output follows
{
"abspath": "foo",
"annotate": [
{
"abspath": "foo",
"author": "test",
"desc": "commit 4 (intra whitespace on line 0)",
"line": "line 0\n",
"lineno": 1,
"node": "08adbe269f24cf22d975eadeec16790c5b22f558",
"revdate": [
0.0,
0
],
"targetline": 1
},
{
"abspath": "foo",
"author": "test",
"desc": "commit 5 (add blank line between line 0 and 1)",
"line": "\n",
"lineno": 2,
"node": "400ef1d404706cfb48afd2b78ce6addf641ced25",
"revdate": [
0.0,
0
],
"targetline": 2
},
{
"abspath": "foo",
"author": "test",
"desc": "commit 6 (add another blank line between line 0 and 1)",
"line": "\n",
"lineno": 3,
"node": "9d1b2c7db0175870a950f8c48c9c4ead1058f2c5",
"revdate": [
0.0,
0
],
"targetline": 3
},
{
"abspath": "foo",
"author": "test",
"desc": "commit 1",
"line": "line 1 modified by 1\n",
"lineno": 4,
"node": "23e1e37387dcfca4c0ed0cc568d1e4b9bfed241a",
"revdate": [
0.0,
0
],
"targetline": 2
},
{
"abspath": "foo",
"author": "test",
"desc": "commit 2 (leading whitespace on line 2)",
"line": " line 2\n",
"lineno": 5,
"node": "6bdb694e7b8cebb68d5b6b27b4bcc2a49d62c602",
"revdate": [
0.0,
0
],
"targetline": 3
},
{
"abspath": "foo",
"author": "test",
"desc": "commit 3 (trailing whitespace on line 3)",
"line": "line 3 \n",
"lineno": 6,
"node": "dcb62cfbfc9b3ab995a5cbbaff6e1971c3e4f865",
"revdate": [
0.0,
0
],
"targetline": 4
}
],
"author": "test",
"children": [],
"date": [
0.0,
0
],
"desc": "commit 6 (add another blank line between line 0 and 1)",
"node": "9d1b2c7db0175870a950f8c48c9c4ead1058f2c5",
"parents": [
"400ef1d404706cfb48afd2b78ce6addf641ced25"
],
"permissions": ""
}
annotate.ignorews=1 config option is honored
$ get-with-headers.py --json $LOCALIP:$HGPORT1 'json-annotate/9d1b2c7db017/foo'
200 Script output follows
{
"abspath": "foo",
"annotate": [
{
"abspath": "foo",
"author": "test",
"desc": "commit 0",
"line": "line 0\n",
"lineno": 1,
"node": "b9c578134d72b3a9d26afde8ddd76c0a93c5adbc",
"revdate": [
0.0,
0
],
"targetline": 1
},
{
"abspath": "foo",
"author": "test",
"desc": "commit 5 (add blank line between line 0 and 1)",
"line": "\n",
"lineno": 2,
"node": "400ef1d404706cfb48afd2b78ce6addf641ced25",
"revdate": [
0.0,
0
],
"targetline": 2
},
{
"abspath": "foo",
"author": "test",
"desc": "commit 6 (add another blank line between line 0 and 1)",
"line": "\n",
"lineno": 3,
"node": "9d1b2c7db0175870a950f8c48c9c4ead1058f2c5",
"revdate": [
0.0,
0
],
"targetline": 3
},
{
"abspath": "foo",
"author": "test",
"desc": "commit 1",
"line": "line 1 modified by 1\n",
"lineno": 4,
"node": "23e1e37387dcfca4c0ed0cc568d1e4b9bfed241a",
"revdate": [
0.0,
0
],
"targetline": 2
},
{
"abspath": "foo",
"author": "test",
"desc": "commit 0",
"line": " line 2\n",
"lineno": 5,
"node": "b9c578134d72b3a9d26afde8ddd76c0a93c5adbc",
"revdate": [
0.0,
0
],
"targetline": 3
},
{
"abspath": "foo",
"author": "test",
"desc": "commit 0",
"line": "line 3 \n",
"lineno": 6,
"node": "b9c578134d72b3a9d26afde8ddd76c0a93c5adbc",
"revdate": [
0.0,
0
],
"targetline": 4
}
],
"author": "test",
"children": [],
"date": [
0.0,
0
],
"desc": "commit 6 (add another blank line between line 0 and 1)",
"node": "9d1b2c7db0175870a950f8c48c9c4ead1058f2c5",
"parents": [
"400ef1d404706cfb48afd2b78ce6addf641ced25"
],
"permissions": ""
}
Gregory Szorc
hgweb: query string arguments to control whitespace for annotate...
r34391 ignorews=1 query string argument enables whitespace skipping
Gregory Szorc
tests: add tests for hgweb annotate output...
r34390
$ get-with-headers.py --json $LOCALIP:$HGPORT 'json-annotate/9d1b2c7db017/foo?ignorews=1'
200 Script output follows
{
"abspath": "foo",
"annotate": [
{
"abspath": "foo",
"author": "test",
"desc": "commit 0",
"line": "line 0\n",
"lineno": 1,
"node": "b9c578134d72b3a9d26afde8ddd76c0a93c5adbc",
"revdate": [
0.0,
0
],
"targetline": 1
},
{
"abspath": "foo",
"author": "test",
"desc": "commit 5 (add blank line between line 0 and 1)",
"line": "\n",
"lineno": 2,
"node": "400ef1d404706cfb48afd2b78ce6addf641ced25",
"revdate": [
0.0,
0
],
"targetline": 2
},
{
"abspath": "foo",
"author": "test",
"desc": "commit 6 (add another blank line between line 0 and 1)",
"line": "\n",
"lineno": 3,
"node": "9d1b2c7db0175870a950f8c48c9c4ead1058f2c5",
"revdate": [
0.0,
0
],
"targetline": 3
},
{
"abspath": "foo",
"author": "test",
"desc": "commit 1",
"line": "line 1 modified by 1\n",
"lineno": 4,
"node": "23e1e37387dcfca4c0ed0cc568d1e4b9bfed241a",
"revdate": [
0.0,
0
],
"targetline": 2
},
{
"abspath": "foo",
"author": "test",
"desc": "commit 0",
"line": " line 2\n",
"lineno": 5,
"node": "b9c578134d72b3a9d26afde8ddd76c0a93c5adbc",
"revdate": [
0.0,
0
],
"targetline": 3
},
{
"abspath": "foo",
"author": "test",
"desc": "commit 0",
"line": "line 3 \n",
"lineno": 6,
"node": "b9c578134d72b3a9d26afde8ddd76c0a93c5adbc",
"revdate": [
0.0,
0
],
"targetline": 4
}
],
"author": "test",
"children": [],
"date": [
0.0,
0
],
"desc": "commit 6 (add another blank line between line 0 and 1)",
"node": "9d1b2c7db0175870a950f8c48c9c4ead1058f2c5",
"parents": [
"400ef1d404706cfb48afd2b78ce6addf641ced25"
],
"permissions": ""
}
Gregory Szorc
hgweb: query string arguments to control whitespace for annotate...
r34391 ignorews=0 query string argument disables when config defaults to enabled
Gregory Szorc
tests: add tests for hgweb annotate output...
r34390
Gregory Szorc
hgweb: query string arguments to control whitespace for annotate...
r34391 $ get-with-headers.py --json $LOCALIP:$HGPORT1 'json-annotate/9d1b2c7db017/foo?ignorews=0'
Gregory Szorc
tests: add tests for hgweb annotate output...
r34390 200 Script output follows
{
"abspath": "foo",
"annotate": [
{
"abspath": "foo",
"author": "test",
"desc": "commit 4 (intra whitespace on line 0)",
"line": "line 0\n",
"lineno": 1,
"node": "08adbe269f24cf22d975eadeec16790c5b22f558",
"revdate": [
0.0,
0
],
"targetline": 1
},
{
"abspath": "foo",
"author": "test",
"desc": "commit 5 (add blank line between line 0 and 1)",
"line": "\n",
"lineno": 2,
"node": "400ef1d404706cfb48afd2b78ce6addf641ced25",
"revdate": [
0.0,
0
],
"targetline": 2
},
{
"abspath": "foo",
"author": "test",
"desc": "commit 6 (add another blank line between line 0 and 1)",
"line": "\n",
"lineno": 3,
"node": "9d1b2c7db0175870a950f8c48c9c4ead1058f2c5",
"revdate": [
0.0,
0
],
"targetline": 3
},
{
"abspath": "foo",
"author": "test",
"desc": "commit 1",
"line": "line 1 modified by 1\n",
"lineno": 4,
"node": "23e1e37387dcfca4c0ed0cc568d1e4b9bfed241a",
"revdate": [
0.0,
0
],
"targetline": 2
},
{
"abspath": "foo",
"author": "test",
"desc": "commit 2 (leading whitespace on line 2)",
"line": " line 2\n",
"lineno": 5,
"node": "6bdb694e7b8cebb68d5b6b27b4bcc2a49d62c602",
"revdate": [
0.0,
0
],
"targetline": 3
},
{
"abspath": "foo",
"author": "test",
"desc": "commit 3 (trailing whitespace on line 3)",
"line": "line 3 \n",
"lineno": 6,
"node": "dcb62cfbfc9b3ab995a5cbbaff6e1971c3e4f865",
"revdate": [
0.0,
0
],
"targetline": 4
}
],
"author": "test",
"children": [],
"date": [
0.0,
0
],
"desc": "commit 6 (add another blank line between line 0 and 1)",
"node": "9d1b2c7db0175870a950f8c48c9c4ead1058f2c5",
"parents": [
"400ef1d404706cfb48afd2b78ce6addf641ced25"
],
"permissions": ""
}
Gregory Szorc
hgweb: query string arguments to control whitespace for annotate...
r34391 ignorewsamount=1 query string enables whitespace amount skipping
$ get-with-headers.py --json $LOCALIP:$HGPORT 'json-annotate/9d1b2c7db017/foo?ignorewsamount=1'
200 Script output follows
{
"abspath": "foo",
"annotate": [
{
"abspath": "foo",
"author": "test",
"desc": "commit 0",
"line": "line 0\n",
"lineno": 1,
"node": "b9c578134d72b3a9d26afde8ddd76c0a93c5adbc",
"revdate": [
0.0,
0
],
"targetline": 1
},
{
"abspath": "foo",
"author": "test",
"desc": "commit 5 (add blank line between line 0 and 1)",
"line": "\n",
"lineno": 2,
"node": "400ef1d404706cfb48afd2b78ce6addf641ced25",
"revdate": [
0.0,
0
],
"targetline": 2
},
{
"abspath": "foo",
"author": "test",
"desc": "commit 6 (add another blank line between line 0 and 1)",
"line": "\n",
"lineno": 3,
"node": "9d1b2c7db0175870a950f8c48c9c4ead1058f2c5",
"revdate": [
0.0,
0
],
"targetline": 3
},
{
"abspath": "foo",
"author": "test",
"desc": "commit 1",
"line": "line 1 modified by 1\n",
"lineno": 4,
"node": "23e1e37387dcfca4c0ed0cc568d1e4b9bfed241a",
"revdate": [
0.0,
0
],
"targetline": 2
},
{
"abspath": "foo",
"author": "test",
"desc": "commit 2 (leading whitespace on line 2)",
"line": " line 2\n",
"lineno": 5,
"node": "6bdb694e7b8cebb68d5b6b27b4bcc2a49d62c602",
"revdate": [
0.0,
0
],
"targetline": 3
},
{
"abspath": "foo",
"author": "test",
"desc": "commit 0",
"line": "line 3 \n",
"lineno": 6,
"node": "b9c578134d72b3a9d26afde8ddd76c0a93c5adbc",
"revdate": [
0.0,
0
],
"targetline": 4
}
],
"author": "test",
"children": [],
"date": [
0.0,
0
],
"desc": "commit 6 (add another blank line between line 0 and 1)",
"node": "9d1b2c7db0175870a950f8c48c9c4ead1058f2c5",
"parents": [
"400ef1d404706cfb48afd2b78ce6addf641ced25"
],
"permissions": ""
}
ignorewseol=1 query string enables whitespace end of line skipping
Gregory Szorc
tests: add tests for hgweb annotate output...
r34390
$ get-with-headers.py --json $LOCALIP:$HGPORT 'json-annotate/9d1b2c7db017/foo?ignorewseol=1'
200 Script output follows
{
"abspath": "foo",
"annotate": [
{
"abspath": "foo",
"author": "test",
"desc": "commit 4 (intra whitespace on line 0)",
"line": "line 0\n",
"lineno": 1,
"node": "08adbe269f24cf22d975eadeec16790c5b22f558",
"revdate": [
0.0,
0
],
"targetline": 1
},
{
"abspath": "foo",
"author": "test",
"desc": "commit 5 (add blank line between line 0 and 1)",
"line": "\n",
"lineno": 2,
"node": "400ef1d404706cfb48afd2b78ce6addf641ced25",
"revdate": [
0.0,
0
],
"targetline": 2
},
{
"abspath": "foo",
"author": "test",
"desc": "commit 6 (add another blank line between line 0 and 1)",
"line": "\n",
"lineno": 3,
"node": "9d1b2c7db0175870a950f8c48c9c4ead1058f2c5",
"revdate": [
0.0,
0
],
"targetline": 3
},
{
"abspath": "foo",
"author": "test",
"desc": "commit 1",
"line": "line 1 modified by 1\n",
"lineno": 4,
"node": "23e1e37387dcfca4c0ed0cc568d1e4b9bfed241a",
"revdate": [
0.0,
0
],
"targetline": 2
},
{
"abspath": "foo",
"author": "test",
"desc": "commit 2 (leading whitespace on line 2)",
"line": " line 2\n",
"lineno": 5,
"node": "6bdb694e7b8cebb68d5b6b27b4bcc2a49d62c602",
"revdate": [
0.0,
0
],
"targetline": 3
},
{
"abspath": "foo",
"author": "test",
Gregory Szorc
hgweb: query string arguments to control whitespace for annotate...
r34391 "desc": "commit 0",
Gregory Szorc
tests: add tests for hgweb annotate output...
r34390 "line": "line 3 \n",
"lineno": 6,
Gregory Szorc
hgweb: query string arguments to control whitespace for annotate...
r34391 "node": "b9c578134d72b3a9d26afde8ddd76c0a93c5adbc",
Gregory Szorc
tests: add tests for hgweb annotate output...
r34390 "revdate": [
0.0,
0
],
"targetline": 4
}
],
"author": "test",
"children": [],
"date": [
0.0,
0
],
"desc": "commit 6 (add another blank line between line 0 and 1)",
"node": "9d1b2c7db0175870a950f8c48c9c4ead1058f2c5",
"parents": [
"400ef1d404706cfb48afd2b78ce6addf641ced25"
],
"permissions": ""
}
Gregory Szorc
hgweb: query string arguments to control whitespace for annotate...
r34391 ignoreblanklines=1 query string enables whitespace blank line skipping
Gregory Szorc
tests: add tests for hgweb annotate output...
r34390
$ get-with-headers.py --json $LOCALIP:$HGPORT 'json-annotate/9d1b2c7db017/foo?ignoreblanklines=1'
200 Script output follows
{
"abspath": "foo",
"annotate": [
{
"abspath": "foo",
"author": "test",
"desc": "commit 4 (intra whitespace on line 0)",
"line": "line 0\n",
"lineno": 1,
"node": "08adbe269f24cf22d975eadeec16790c5b22f558",
"revdate": [
0.0,
0
],
"targetline": 1
},
{
"abspath": "foo",
"author": "test",
"desc": "commit 5 (add blank line between line 0 and 1)",
"line": "\n",
"lineno": 2,
"node": "400ef1d404706cfb48afd2b78ce6addf641ced25",
"revdate": [
0.0,
0
],
"targetline": 2
},
{
"abspath": "foo",
"author": "test",
"desc": "commit 6 (add another blank line between line 0 and 1)",
"line": "\n",
"lineno": 3,
"node": "9d1b2c7db0175870a950f8c48c9c4ead1058f2c5",
"revdate": [
0.0,
0
],
"targetline": 3
},
{
"abspath": "foo",
"author": "test",
"desc": "commit 1",
"line": "line 1 modified by 1\n",
"lineno": 4,
"node": "23e1e37387dcfca4c0ed0cc568d1e4b9bfed241a",
"revdate": [
0.0,
0
],
"targetline": 2
},
{
"abspath": "foo",
"author": "test",
"desc": "commit 2 (leading whitespace on line 2)",
"line": " line 2\n",
"lineno": 5,
"node": "6bdb694e7b8cebb68d5b6b27b4bcc2a49d62c602",
"revdate": [
0.0,
0
],
"targetline": 3
},
{
"abspath": "foo",
"author": "test",
"desc": "commit 3 (trailing whitespace on line 3)",
"line": "line 3 \n",
"lineno": 6,
"node": "dcb62cfbfc9b3ab995a5cbbaff6e1971c3e4f865",
"revdate": [
0.0,
0
],
"targetline": 4
}
],
"author": "test",
"children": [],
"date": [
0.0,
0
],
"desc": "commit 6 (add another blank line between line 0 and 1)",
"node": "9d1b2c7db0175870a950f8c48c9c4ead1058f2c5",
"parents": [
"400ef1d404706cfb48afd2b78ce6addf641ced25"
],
"permissions": ""
}