mirror of
https://github.com/facebook/sapling.git
synced 2024-10-07 07:17:55 +03:00
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.
This commit is contained in:
parent
3a983954a1
commit
a5cff59341
20
mercurial/templates/json/map
Normal file
20
mercurial/templates/json/map
Normal file
@ -0,0 +1,20 @@
|
||||
mimetype = 'application/json'
|
||||
filerevision = '"not yet implemented"'
|
||||
search = '"not yet implemented"'
|
||||
shortlog = '"not yet implemented"'
|
||||
changelog = '"not yet implemented"'
|
||||
changeset = '"not yet implemented"'
|
||||
manifest = '"not yet implemented"'
|
||||
tags = '"not yet implemented"'
|
||||
bookmarks = '"not yet implemented"'
|
||||
branches = '"not yet implemented"'
|
||||
summary = '"not yet implemented"'
|
||||
filediff = '"not yet implemented"'
|
||||
filecomparison = '"not yet implemented"'
|
||||
fileannotate = '"not yet implemented"'
|
||||
filelog = '"not yet implemented"'
|
||||
graph = '"not yet implemented"'
|
||||
helptopics = '"not yet implemented"'
|
||||
help = '"not yet implemented"'
|
||||
filenodelink = ''
|
||||
filenolink = ''
|
241
tests/test-hgweb-json.t
Normal file
241
tests/test-hgweb-json.t
Normal file
@ -0,0 +1,241 @@
|
||||
#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"
|
Loading…
Reference in New Issue
Block a user