##// END OF EJS Templates
templates: add a stub template for json...
templates: add a stub template for json Many have long wanted hgweb to emit a common machine readable output. We start the process by defining a stub json template. Right now, each endpoint returns a stub "not yet implemented" string. Individual templates will be implemented in subsequent patches. Basic tests for templates have been included. Coverage isn't perfect, but it is better than nothing.

File last commit:

r24544:71e96b9f default
r24544:71e96b9f default
Show More
test-hgweb-json.t
241 lines | 5.3 KiB | text/troff | Tads3Lexer
#require json
#require serve
$ request() {
> $TESTDIR/get-with-headers.py --json localhost:$HGPORT "$1"
> }
$ hg init test
$ cd test
$ mkdir da
$ echo foo > da/foo
$ echo foo > foo
$ hg -q ci -A -m initial
$ echo bar > foo
$ hg ci -m 'modify foo'
$ echo bar > da/foo
$ hg ci -m 'modify da/foo'
$ hg bookmark bookmark1
$ hg up default
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
(leaving bookmark bookmark1)
$ hg mv foo foo-new
$ hg commit -m 'move foo'
$ hg tag -m 'create tag' tag1
$ echo baz > da/foo
$ hg commit -m 'another commit to da/foo'
$ hg tag -m 'create tag2' tag2
$ hg bookmark bookmark2
$ hg -q up -r 0
$ hg -q branch test-branch
$ echo branch > foo
$ hg commit -m 'create test branch'
$ hg log -G
@ changeset: 7:6ab967a8ab34
| branch: test-branch
| tag: tip
| parent: 0:06e557f3edf6
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: create test branch
|
| o changeset: 6:ceed296fe500
| | bookmark: bookmark2
| | user: test
| | date: Thu Jan 01 00:00:00 1970 +0000
| | summary: create tag2
| |
| o changeset: 5:f2890a05fea4
| | tag: tag2
| | user: test
| | date: Thu Jan 01 00:00:00 1970 +0000
| | summary: another commit to da/foo
| |
| o changeset: 4:93a8ce14f891
| | user: test
| | date: Thu Jan 01 00:00:00 1970 +0000
| | summary: create tag
| |
| o changeset: 3:78896eb0e102
| | tag: tag1
| | user: test
| | date: Thu Jan 01 00:00:00 1970 +0000
| | summary: move foo
| |
| o changeset: 2:8d7c456572ac
| | bookmark: bookmark1
| | user: test
| | date: Thu Jan 01 00:00:00 1970 +0000
| | summary: modify da/foo
| |
| o changeset: 1:f8bbb9024b10
|/ user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: modify foo
|
o changeset: 0:06e557f3edf6
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: initial
$ hg serve -p $HGPORT -d --pid-file=hg.pid -A access.log -E error.log
$ cat hg.pid >> $DAEMON_PIDS
(Try to keep these in roughly the order they are defined in webcommands.py)
(log is handled by filelog/ and changelog/ - ignore it)
(rawfile/ doesn't use templating - nothing to test)
file/{revision}/{path} shows file revision
$ request json-rev/06e557f3edf6/foo
200 Script output follows
"not yet implemented"
file/{revision} shows root directory info
$ request json-rev/06e557f3edf6
200 Script output follows
"not yet implemented"
changelog/ shows information about several changesets
$ request json-changelog
200 Script output follows
"not yet implemented"
changelog/{revision} shows information about a single changeset
$ request json-changelog/06e557f3edf6
200 Script output follows
"not yet implemented"
shortlog/ shows information about a set of changesets
$ request json-shortlog
200 Script output follows
"not yet implemented"
changeset/ renders the tip changeset
$ request json-rev
200 Script output follows
"not yet implemented"
changeset/{revision} shows tags
$ request json-rev/78896eb0e102
200 Script output follows
"not yet implemented"
changeset/{revision} shows bookmarks
$ request json-rev/8d7c456572ac
200 Script output follows
"not yet implemented"
changeset/{revision} shows branches
$ request json-rev/6ab967a8ab34
200 Script output follows
"not yet implemented"
manifest/{revision}/{path} shows info about a directory at a revision
$ request json-manifest/06e557f3edf6/
200 Script output follows
"not yet implemented"
tags/ shows tags info
$ request json-tags
200 Script output follows
"not yet implemented"
bookmarks/ shows bookmarks info
$ request json-bookmarks
200 Script output follows
"not yet implemented"
branches/ shows branches info
$ request json-branches
200 Script output follows
"not yet implemented"
summary/ shows a summary of repository state
$ request json-summary
200 Script output follows
"not yet implemented"
filediff/{revision}/{path} shows changes to a file in a revision
$ request json-diff/f8bbb9024b10/foo
200 Script output follows
"not yet implemented"
comparison/{revision}/{path} shows information about before and after for a file
$ request json-comparison/f8bbb9024b10/foo
200 Script output follows
"not yet implemented"
annotate/{revision}/{path} shows annotations for each line
$ request json-annotate/f8bbb9024b10/foo
200 Script output follows
"not yet implemented"
filelog/{revision}/{path} shows history of a single file
$ request json-filelog/f8bbb9024b10/foo
200 Script output follows
"not yet implemented"
(archive/ doesn't use templating, so ignore it)
(static/ doesn't use templating, so ignore it)
graph/ shows information that can be used to render a graph of the DAG
$ request json-graph
200 Script output follows
"not yet implemented"
help/ shows help topics
$ request json-help
200 Script output follows
"not yet implemented"
help/{topic} shows an individual help topic
$ request json-help/phases
200 Script output follows
"not yet implemented"