mirror of
https://github.com/facebook/sapling.git
synced 2024-10-11 17:27:53 +03:00
1137cc5743
Summary: It's super-useful to know the difference between "Accepted (You need to go and click the land button)" and "Accepted (We're just waiting for the land system to do its thing, no work for you right now)" Alternative approach in D8074898 Reviewed By: mitrandir77 Differential Revision: D8074794 fbshipit-source-id: fdfda64e3a542518b8609e3a415d8cb3156373cf
131 lines
3.6 KiB
Perl
131 lines
3.6 KiB
Perl
Setup
|
|
|
|
$ cat >> $HGRCPATH << EOF
|
|
> [extensions]
|
|
> arcconfig=$TESTDIR/../hgext/extlib/phabricator/arcconfig.py
|
|
> phabstatus=
|
|
> smartlog=
|
|
> EOF
|
|
$ hg init repo
|
|
$ cd repo
|
|
$ touch foo
|
|
$ hg ci -qAm 'Differential Revision: https://phabricator.fb.com/D1'
|
|
|
|
With an invalid arc configuration
|
|
|
|
$ hg log -T '{syncstatus}\n' -r .
|
|
arcconfig configuration problem. No diff information can be provided.
|
|
Error info: no .arcconfig found
|
|
Error
|
|
|
|
Configure arc...
|
|
|
|
$ echo '{}' > .arcrc
|
|
$ echo '{"config" : {"default" : "https://a.com/api"}, "hosts" : {"https://a.com/api/" : { "user" : "testuser", "cert" : "garbage_cert"}}}' > .arcconfig
|
|
|
|
And now with bad responses:
|
|
|
|
$ cat > $TESTTMP/mockduit << EOF
|
|
> [{}]
|
|
> EOF
|
|
$ HG_ARC_CONDUIT_MOCK=$TESTTMP/mockduit hg log -T '{syncstatus}\n' -r .
|
|
Error talking to phabricator. No diff information can be provided.
|
|
Error info: Unexpected graphql response format
|
|
Error
|
|
|
|
$ cat > $TESTTMP/mockduit << EOF
|
|
> [{"errors": [{"message": "failed, yo"}]}]
|
|
> EOF
|
|
$ HG_ARC_CONDUIT_MOCK=$TESTTMP/mockduit hg log -T '{syncstatus}\n' -r .
|
|
Error talking to phabricator. No diff information can be provided.
|
|
Error info: failed, yo
|
|
Error
|
|
|
|
Missing status field is treated as an error
|
|
|
|
$ cat > $TESTTMP/mockduit << EOF
|
|
> [{"data": {"query": [{"results": {"nodes": [{
|
|
> "number": 1,
|
|
> "latest_active_diff": {
|
|
> "local_commit_info": {
|
|
> "nodes": [
|
|
> {"property_value": "{\"lolwut\": {\"time\": 0, \"commit\": \"lolwut\"}}"}
|
|
> ]
|
|
> }
|
|
> },
|
|
> "differential_diffs": {"count": 3},
|
|
> "created_time": 123,
|
|
> "updated_time": 222
|
|
> }]}}]}}]
|
|
> EOF
|
|
$ HG_ARC_CONDUIT_MOCK=$TESTTMP/mockduit hg log -T '{syncstatus}\n' -r .
|
|
Error talking to phabricator. No diff information can be provided.
|
|
Error info: Unexpected graphql response format
|
|
Error
|
|
|
|
Missing count field is treated as an error
|
|
|
|
$ cat > $TESTTMP/mockduit << EOF
|
|
> [{"data": {"query": [{"results": {"nodes": [{
|
|
> "number": 1,
|
|
> "diff_status_name": "Approved",
|
|
> "latest_active_diff": {
|
|
> "local_commit_info": {
|
|
> "nodes": [
|
|
> {"property_value": "{\"lolwut\": {\"time\": 0, \"commit\": \"lolwut\"}}"}
|
|
> ]
|
|
> }
|
|
> },
|
|
> "created_time": 123,
|
|
> "updated_time": 222
|
|
> }]}}]}}]
|
|
> EOF
|
|
$ HG_ARC_CONDUIT_MOCK=$TESTTMP/mockduit hg log -T '{syncstatus}\n' -r .
|
|
Error talking to phabricator. No diff information can be provided.
|
|
Error info: Unexpected graphql response format
|
|
Error
|
|
|
|
Missing hash field is treated as unsync
|
|
|
|
$ cat > $TESTTMP/mockduit << EOF
|
|
> [{"data": {"query": [{"results": {"nodes": [{
|
|
> "number": 1,
|
|
> "diff_status_name": "Approved",
|
|
> "latest_active_diff": {
|
|
> "local_commit_info": {
|
|
> "nodes": [
|
|
> {"property_value": "{\"lolwut\": {\"time\": 0}}"}
|
|
> ]
|
|
> }
|
|
> },
|
|
> "differential_diffs": {"count": 3},
|
|
> "is_landing": false,
|
|
> "created_time": 123,
|
|
> "updated_time": 222
|
|
> }]}}]}}]
|
|
> EOF
|
|
$ HG_ARC_CONDUIT_MOCK=$TESTTMP/mockduit hg log -T '{syncstatus}\n' -r .
|
|
unsync
|
|
|
|
And finally, the success case
|
|
|
|
$ cat > $TESTTMP/mockduit << EOF
|
|
> [{"data": {"query": [{"results": {"nodes": [{
|
|
> "number": 1,
|
|
> "diff_status_name": "Committed",
|
|
> "latest_active_diff": {
|
|
> "local_commit_info": {
|
|
> "nodes": [
|
|
> {"property_value": "{\"lolwut\": {\"time\": 0, \"commit\": \"lolwut\"}}"}
|
|
> ]
|
|
> }
|
|
> },
|
|
> "differential_diffs": {"count": 3},
|
|
> "is_landing": false,
|
|
> "created_time": 123,
|
|
> "updated_time": 222
|
|
> }]}}]}}]
|
|
> EOF
|
|
$ HG_ARC_CONDUIT_MOCK=$TESTTMP/mockduit hg log -T '{syncstatus}\n' -r .
|
|
committed
|