##// END OF EJS Templates
formatter: convert timestamp to int...
formatter: convert timestamp to int Spotted while porting jsonchangeset printer to formatter. A timestamp may be float type, but its meaningful part is just int.

File last commit:

r37788:31750413 default
r37788:31750413 default
Show More
test-journal.t
242 lines | 6.6 KiB | text/troff | Tads3Lexer
Martijn Pieters
journal: new experimental extension...
r29443 Tests for the journal extension; records bookmark locations.
$ cat >> testmocks.py << EOF
Yuya Nishihara
procutil: bulk-replace function calls to point to new module
r37138 > # mock out procutil.getuser() and util.makedate() to supply testable values
Martijn Pieters
journal: new experimental extension...
r29443 > import os
Pulkit Goyal
py3: use pycompat.bytestr in test-journal.t...
r37382 > from mercurial import util, pycompat
Yuya Nishihara
procutil: bulk-replace function calls to point to new module
r37138 > from mercurial.utils import dateutil, procutil
Martijn Pieters
journal: new experimental extension...
r29443 > def mockgetuser():
Pulkit Goyal
py3: convert user value to bytes by b'' prefix...
r37401 > return b'foobar'
Martijn Pieters
journal: new experimental extension...
r29443 >
> def mockmakedate():
> filename = os.path.join(os.environ['TESTTMP'], 'testtime')
> try:
> with open(filename, 'rb') as timef:
> time = float(timef.read()) + 1
> except IOError:
> time = 0.0
> with open(filename, 'wb') as timef:
Pulkit Goyal
py3: use pycompat.bytestr in test-journal.t...
r37382 > timef.write(pycompat.bytestr(time))
Martijn Pieters
journal: new experimental extension...
r29443 > return (time, 0)
>
Yuya Nishihara
procutil: bulk-replace function calls to point to new module
r37138 > procutil.getuser = mockgetuser
Boris Feld
util: extract all date-related utils in utils/dateutil module...
r36625 > dateutil.makedate = mockmakedate
Martijn Pieters
journal: new experimental extension...
r29443 > EOF
$ cat >> $HGRCPATH << EOF
> [extensions]
> journal=
> testmocks=`pwd`/testmocks.py
> EOF
Setup repo
$ hg init repo
$ cd repo
Test empty journal
$ hg journal
Martijn Pieters
journal: add dirstate tracking...
r29502 previous locations of '.':
Martijn Pieters
journal: new experimental extension...
r29443 no recorded locations
$ hg journal foo
previous locations of 'foo':
no recorded locations
Martijn Pieters
journal: add dirstate tracking...
r29502 Test that working copy changes are tracked
$ echo a > a
$ hg commit -Aqm a
$ hg journal
previous locations of '.':
cb9a9f314b8b commit -Aqm a
$ echo b > a
$ hg commit -Aqm b
$ hg journal
previous locations of '.':
1e6c11564562 commit -Aqm b
cb9a9f314b8b commit -Aqm a
$ hg up 0
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg journal
previous locations of '.':
cb9a9f314b8b up 0
1e6c11564562 commit -Aqm b
cb9a9f314b8b commit -Aqm a
Martijn Pieters
journal: new experimental extension...
r29443 Test that bookmarks are tracked
$ hg book -r tip bar
$ hg journal bar
previous locations of 'bar':
1e6c11564562 book -r tip bar
$ hg book -f bar
$ hg journal bar
previous locations of 'bar':
cb9a9f314b8b book -f bar
1e6c11564562 book -r tip bar
$ hg up
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
updating bookmark bar
$ hg journal bar
previous locations of 'bar':
1e6c11564562 up
cb9a9f314b8b book -f bar
1e6c11564562 book -r tip bar
Martijn Pieters
journal: add dirstate tracking...
r29502 Test that bookmarks and working copy tracking is not mixed
$ hg journal
previous locations of '.':
1e6c11564562 up
cb9a9f314b8b up 0
1e6c11564562 commit -Aqm b
cb9a9f314b8b commit -Aqm a
Test that you can list all entries as well as limit the list or filter on them
Martijn Pieters
journal: new experimental extension...
r29443
$ hg book -r tip baz
Martijn Pieters
journal: add dirstate tracking...
r29502 $ hg journal --all
previous locations of the working copy and bookmarks:
1e6c11564562 baz book -r tip baz
1e6c11564562 bar up
1e6c11564562 . up
cb9a9f314b8b bar book -f bar
1e6c11564562 bar book -r tip bar
cb9a9f314b8b . up 0
1e6c11564562 . commit -Aqm b
cb9a9f314b8b . commit -Aqm a
Martijn Pieters
journal: new experimental extension...
r29443 $ hg journal --limit 2
Martijn Pieters
journal: add dirstate tracking...
r29502 previous locations of '.':
Martijn Pieters
journal: new experimental extension...
r29443 1e6c11564562 up
Martijn Pieters
journal: add dirstate tracking...
r29502 cb9a9f314b8b up 0
Martijn Pieters
journal: new experimental extension...
r29443 $ hg journal bar
previous locations of 'bar':
1e6c11564562 up
cb9a9f314b8b book -f bar
1e6c11564562 book -r tip bar
$ hg journal foo
previous locations of 'foo':
no recorded locations
Martijn Pieters
journal: add dirstate tracking...
r29502 $ hg journal .
previous locations of '.':
1e6c11564562 up
cb9a9f314b8b up 0
1e6c11564562 commit -Aqm b
cb9a9f314b8b commit -Aqm a
Martijn Pieters
journal: add support for seaching by pattern...
r29504 $ hg journal "re:ba."
previous locations of 're:ba.':
1e6c11564562 baz book -r tip baz
1e6c11564562 bar up
cb9a9f314b8b bar book -f bar
1e6c11564562 bar book -r tip bar
Martijn Pieters
journal: new experimental extension...
r29443
Yuya Nishihara
journal: use fm.formatlist() to pass hashes in appropriate type (BC)
r29677 Test that verbose, JSON, template and commit output work
Martijn Pieters
journal: new experimental extension...
r29443
Martijn Pieters
journal: add dirstate tracking...
r29502 $ hg journal --verbose --all
previous locations of the working copy and bookmarks:
000000000000 -> 1e6c11564562 foobar baz 1970-01-01 00:00 +0000 book -r tip baz
cb9a9f314b8b -> 1e6c11564562 foobar bar 1970-01-01 00:00 +0000 up
cb9a9f314b8b -> 1e6c11564562 foobar . 1970-01-01 00:00 +0000 up
1e6c11564562 -> cb9a9f314b8b foobar bar 1970-01-01 00:00 +0000 book -f bar
000000000000 -> 1e6c11564562 foobar bar 1970-01-01 00:00 +0000 book -r tip bar
1e6c11564562 -> cb9a9f314b8b foobar . 1970-01-01 00:00 +0000 up 0
cb9a9f314b8b -> 1e6c11564562 foobar . 1970-01-01 00:00 +0000 commit -Aqm b
000000000000 -> cb9a9f314b8b foobar . 1970-01-01 00:00 +0000 commit -Aqm a
$ hg journal --verbose -Tjson
[
{
"command": "up",
Yuya Nishihara
formatter: convert timestamp to int...
r37788 "date": [5, 0],
Martijn Pieters
journal: add dirstate tracking...
r29502 "name": ".",
Yuya Nishihara
journal: use fm.formatlist() to pass hashes in appropriate type (BC)
r29677 "newhashes": ["1e6c11564562b4ed919baca798bc4338bd299d6a"],
"oldhashes": ["cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b"],
Martijn Pieters
journal: add dirstate tracking...
r29502 "user": "foobar"
},
{
"command": "up 0",
Yuya Nishihara
formatter: convert timestamp to int...
r37788 "date": [2, 0],
Martijn Pieters
journal: add dirstate tracking...
r29502 "name": ".",
Yuya Nishihara
journal: use fm.formatlist() to pass hashes in appropriate type (BC)
r29677 "newhashes": ["cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b"],
"oldhashes": ["1e6c11564562b4ed919baca798bc4338bd299d6a"],
Martijn Pieters
journal: add dirstate tracking...
r29502 "user": "foobar"
},
{
"command": "commit -Aqm b",
Yuya Nishihara
formatter: convert timestamp to int...
r37788 "date": [1, 0],
Martijn Pieters
journal: add dirstate tracking...
r29502 "name": ".",
Yuya Nishihara
journal: use fm.formatlist() to pass hashes in appropriate type (BC)
r29677 "newhashes": ["1e6c11564562b4ed919baca798bc4338bd299d6a"],
"oldhashes": ["cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b"],
Martijn Pieters
journal: add dirstate tracking...
r29502 "user": "foobar"
},
{
"command": "commit -Aqm a",
Yuya Nishihara
formatter: convert timestamp to int...
r37788 "date": [0, 0],
Martijn Pieters
journal: add dirstate tracking...
r29502 "name": ".",
Yuya Nishihara
journal: use fm.formatlist() to pass hashes in appropriate type (BC)
r29677 "newhashes": ["cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b"],
"oldhashes": ["0000000000000000000000000000000000000000"],
Martijn Pieters
journal: add dirstate tracking...
r29502 "user": "foobar"
}
]
Yuya Nishihara
journal: use fm.formatlist() to pass hashes in appropriate type (BC)
r29677
$ cat <<EOF >> $HGRCPATH
> [templates]
> j = "{oldhashes % '{node|upper}'} -> {newhashes % '{node|upper}'}
> - user: {user}
> - command: {command}
Yuya Nishihara
journal: use fm.formatdate() to pass date tuple in appropriate type (BC)
r29679 > - date: {date|rfc3339date}
Yuya Nishihara
journal: use fm.formatlist() to pass hashes in appropriate type (BC)
r29677 > - newhashes: {newhashes}
> - oldhashes: {oldhashes}
> "
> EOF
$ hg journal -Tj -l1
previous locations of '.':
CB9A9F314B8B07BA71012FCDBC544B5A4D82FF5B -> 1E6C11564562B4ED919BACA798BC4338BD299D6A
- user: foobar
- command: up
Yuya Nishihara
journal: use fm.formatdate() to pass date tuple in appropriate type (BC)
r29679 - date: 1970-01-01T00:00:05+00:00
Yuya Nishihara
journal: use fm.formatlist() to pass hashes in appropriate type (BC)
r29677 - newhashes: 1e6c11564562b4ed919baca798bc4338bd299d6a
- oldhashes: cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b
Martijn Pieters
journal: new experimental extension...
r29443 $ hg journal --commit
Martijn Pieters
journal: add dirstate tracking...
r29502 previous locations of '.':
Martijn Pieters
journal: new experimental extension...
r29443 1e6c11564562 up
changeset: 1:1e6c11564562
bookmark: bar
bookmark: baz
tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: b
Martijn Pieters
journal: add dirstate tracking...
r29502 cb9a9f314b8b up 0
Martijn Pieters
journal: new experimental extension...
r29443 changeset: 0:cb9a9f314b8b
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: a
Martijn Pieters
journal: add dirstate tracking...
r29502 1e6c11564562 commit -Aqm b
Martijn Pieters
journal: new experimental extension...
r29443 changeset: 1:1e6c11564562
bookmark: bar
bookmark: baz
tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: b
Martijn Pieters
journal: add dirstate tracking...
r29502 cb9a9f314b8b commit -Aqm a
changeset: 0:cb9a9f314b8b
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: a
Martijn Pieters
journal: new experimental extension...
r29443
Test for behaviour on unexpected storage version information
Pierre-Yves David
journal: rename on disk files to 'namejournal'...
r29870 $ printf '42\0' > .hg/namejournal
Martijn Pieters
journal: new experimental extension...
r29443 $ hg journal
Martijn Pieters
journal: add dirstate tracking...
r29502 previous locations of '.':
Martijn Pieters
journal: new experimental extension...
r29443 abort: unknown journal file version '42'
[255]
$ hg book -r tip doomed
unsupported journal file version '42'