pact-go: contract doesn't support chinese
"interactions": [ { "description": "A request to test pact'", "providerState": "pact", "request": { "method": "POST", "path": "/Course/pact", "body": { "id":1 } }, "response": { "status": 200, "headers": { "Content-Type": "application/json; charset=utf-8" }, "body": { "id": 1, "name": "第1节 自我介绍", "chapter_no": 1, "source_path": "http://class100-ppt.oss-cn-shanghai.aliyuncs.com/0000000001/0000000001.20151018.3b3e9730-7541-11e5-9480-2f80e994f28c.json", "material_id": 1, "created_at": 1494397015, "material": { "id": 1, "name": "暑期全外教兴趣班(中级)", "press": "", "status": 1, "created_at": 1494397015 } } } } ],
which raise error when testing:
[TRACE] response from Ruby process pre-sanitisation: /home/darou/software/pact-go/pact-provider-verifier/lib/vendor/ruby/2.2.0/gems/json-1.8.6/lib/json/pure/parser.rb:242:in rescue in parse_string’: Caught Encoding::CompatibilityError at ‘{ (JSON::ParserError)
“consumer”: {
‘: incompatible encoding regexp match (ASCII-8BIT regexp with UTF-8 string)
from /home/darou/software/pact-go/pact-provider-verifier/lib/vendor/ruby/2.2.0/gems/json-1.8.6/lib/json/pure/parser.rb:213:in parse_string' from /home/darou/software/pact-go/pact-provider-verifier/lib/vendor/ruby/2.2.0/gems/json-1.8.6/lib/json/pure/parser.rb:257:in parse_value’
from /home/darou/software/pact-go/pact-provider-verifier/lib/vendor/ruby/2.2.0/gems/json-1.8.6/lib/json/pure/parser.rb:121:in parse' from /home/darou/software/pact-go/pact-provider-verifier/lib/vendor/ruby/2.2.0/gems/json-1.8.6/lib/json/common.rb:155:in parse’
from /home/darou/software/pact-go/pact-provider-verifier/lib/vendor/ruby/2.2.0/gems/json-1.8.6/lib/json/common.rb:334:in load' from /home/darou/software/pact-go/pact-provider-verifier/lib/vendor/ruby/2.2.0/gems/pact-support-1.1.2/lib/pact/consumer_contract/consumer_contract.rb:42:in from_json’
from /home/darou/software/pact-go/pact-provider-verifier/lib/vendor/ruby/2.2.0/gems/pact-1.14.0/lib/pact/provider/rspec.rb:25:in honour_pactfile' api_test.go:30: Error: provider verification failed: /home/darou/software/pact-go/pact-provider-verifier/lib/vendor/ruby/2.2.0/gems/json-1.8.6/lib/json/pure/parser.rb:242:in rescue in parse_string’: Caught Encoding::CompatibilityError at ‘{ (JSON::ParserError)
from /home/darou/software/pact-go/pact-provider-verifier/lib/vendor/ruby/2.2.0/gems/pact-1.14.0/lib/pact/provider/pact_spec_runner.rb:129:in block in initialize_specs' "consumer": { from /home/darou/software/pact-go/pact-provider-verifier/lib/vendor/ruby/2.2.0/gems/pact-1.14.0/lib/pact/provider/pact_spec_runner.rb:125:in each’
‘: incompatible encoding regexp match (ASCII-8BIT regexp with UTF-8 string)
from /home/darou/software/pact-go/pact-provider-verifier/lib/vendor/ruby/2.2.0/gems/pact-1.14.0/lib/pact/provider/pact_spec_runner.rb:125:in initialize_specs' from /home/darou/software/pact-go/pact-provider-verifier/lib/vendor/ruby/2.2.0/gems/json-1.8.6/lib/json/pure/parser.rb:213:in parse_string’
from /home/darou/software/pact-go/pact-provider-verifier/lib/vendor/ruby/2.2.0/gems/pact-1.14.0/lib/pact/provider/pact_spec_runner.rb:34:in run' from /home/darou/software/pact-go/pact-provider-verifier/lib/vendor/ruby/2.2.0/gems/pact-1.14.0/lib/pact/cli/run_pact_verification.rb:60:in run_with_pact_uri’
from /home/darou/software/pact-go/pact-provider-verifier/lib/vendor/ruby/2.2.0/gems/json-1.8.6/lib/json/pure/parser.rb:257:in parse_value' from /home/darou/software/pact-go/pact-provider-verifier/lib/vendor/ruby/2.2.0/gems/pact-1.14.0/lib/pact/cli/run_pact_verification.rb:48:in run_specs’
from /home/darou/software/pact-go/pact-provider-verifier/lib/vendor/ruby/2.2.0/gems/pact-1.14.0/lib/pact/cli/run_pact_verification.rb:22:in call' from /home/darou/software/pact-go/pact-provider-verifier/lib/vendor/ruby/2.2.0/gems/json-1.8.6/lib/json/pure/parser.rb:121:in parse’
from /home/darou/software/pact-go/pact-provider-verifier/lib/vendor/ruby/2.2.0/gems/pact-1.14.0/lib/pact/cli/run_pact_verification.rb:14:in call' from /home/darou/software/pact-go/pact-provider-verifier/lib/vendor/ruby/2.2.0/gems/json-1.8.6/lib/json/common.rb:155:in parse’
from /home/darou/software/pact-go/pact-provider-verifier/lib/app/lib/pact/provider_verifier/app.rb:66:in block in verify_pacts' from /home/darou/software/pact-go/pact-provider-verifier/lib/app/lib/pact/provider_verifier/app.rb:57:in collect’
from /home/darou/software/pact-go/pact-provider-verifier/lib/app/lib/pact/provider_verifier/app.rb:57:in verify_pacts' from /home/darou/software/pact-go/pact-provider-verifier/lib/vendor/ruby/2.2.0/gems/json-1.8.6/lib/json/common.rb:334:in load’
from /home/darou/software/pact-go/pact-provider-verifier/lib/app/lib/pact/provider_verifier/cli.rb:21:in verify' from /home/darou/software/pact-go/pact-provider-verifier/lib/vendor/ruby/2.2.0/gems/thor-0.19.4/lib/thor/command.rb:27:in run’
from /home/darou/software/pact-go/pact-provider-verifier/lib/vendor/ruby/2.2.0/gems/thor-0.19.4/lib/thor/invocation.rb:126:in invoke_command' from /home/darou/software/pact-go/pact-provider-verifier/lib/vendor/ruby/2.2.0/gems/pact-support-1.1.2/lib/pact/consumer_contract/consumer_contract.rb:42:in from_json’
from /home/darou/software/pact-go/pact-provider-verifier/lib/vendor/ruby/2.2.0/gems/thor-0.19.4/lib/thor.rb:369:in dispatch' from /home/darou/software/pact-go/pact-provider-verifier/lib/vendor/ruby/2.2.0/gems/pact-1.14.0/lib/pact/provider/rspec.rb:25:in honour_pactfile’
from /home/darou/software/pact-go/pact-provider-verifier/lib/vendor/ruby/2.2.0/gems/thor-0.19.4/lib/thor/base.rb:444:in start' from /home/darou/software/pact-go/pact-provider-verifier/lib/app/pact-provider-verifier.rb:3:in <main>’
Reading pact at /home/darou/workspace/class100/service-intellect-course/src/xclass/intellectclass/app/courseserv/api/…/pact/course_pact.json
from /home/darou/software/pact-go/pact-provider-verifier/lib/vendor/ruby/2.2.0/gems/pact-1.14.0/lib/pact/provider/pact_spec_runner.rb:129:in `block in initialize_specs’
from /home/darou/software/pact-go/pact-provider-verifier/lib/vendor/ruby/2.2.0/gems/pact-1.14.0/lib/pact/provider/pact_spec_runner.rb:125:in `each'
from /home/darou/software/pact-go/pact-provider-verifier/lib/vendor/ruby/2.2.0/gems/pact-1.14.0/lib/pact/provider/pact_spec_runner.rb:125:in `initialize_specs'
from /home/darou/software/pact-go/pact-provider-verifier/lib/vendor/ruby/2.2.0/gems/pact-1.14.0/lib/pact/provider/pact_spec_runner.rb:34:in `run'
from /home/darou/software/pact-go/pact-provider-verifier/lib/vendor/ruby/2.2.0/gems/pact-1.14.0/lib/pact/cli/run_pact_verification.rb:60:in `run_with_pact_uri'
from /home/darou/software/pact-go/pact-provider-verifier/lib/vendor/ruby/2.2.0/gems/pact-1.14.0/lib/pact/cli/run_pact_verification.rb:48:in `run_specs'
from /home/darou/software/pact-go/pact-provider-verifier/lib/vendor/ruby/2.2.0/gems/pact-1.14.0/lib/pact/cli/run_pact_verification.rb:22:in `call'
from /home/darou/software/pact-go/pact-provider-verifier/lib/vendor/ruby/2.2.0/gems/pact-1.14.0/lib/pact/cli/run_pact_verification.rb:14:in `call'
from /home/darou/software/pact-go/pact-provider-verifier/lib/app/lib/pact/provider_verifier/app.rb:66:in `block in verify_pacts'
from /home/darou/software/pact-go/pact-provider-verifier/lib/app/lib/pact/provider_verifier/app.rb:57:in `collect'
from /home/darou/software/pact-go/pact-provider-verifier/lib/app/lib/pact/provider_verifier/app.rb:57:in `verify_pacts'
from /home/darou/software/pact-go/pact-provider-verifier/lib/app/lib/pact/provider_verifier/cli.rb:21:in `verify'
from /home/darou/software/pact-go/pact-provider-verifier/lib/vendor/ruby/2.2.0/gems/thor-0.19.4/lib/thor/command.rb:27:in `run'
from /home/darou/software/pact-go/pact-provider-verifier/lib/vendor/ruby/2.2.0/gems/thor-0.19.4/lib/thor/invocation.rb:126:in `invoke_command'
from /home/darou/software/pact-go/pact-provider-verifier/lib/vendor/ruby/2.2.0/gems/thor-0.19.4/lib/thor.rb:369:in `dispatch'
from /home/darou/software/pact-go/pact-provider-verifier/lib/vendor/ruby/2.2.0/gems/thor-0.19.4/lib/thor/base.rb:444:in `start'
from /home/darou/software/pact-go/pact-provider-verifier/lib/app/pact-provider-verifier.rb:3:in `<main>'
Reading pact at /home/darou/workspace/class100/service-intellect-course/src/xclass/intellectclass/app/courseserv/api/../pact/course_pact.json`
About this issue
- Original URL
- State: closed
- Created 7 years ago
- Comments: 21 (15 by maintainers)
Commits related to this issue
- chore(test): create repro for #41 — committed to pact-foundation/pact-go by mefellows 7 years ago
- chore(test): demonstrate working chinese encoding for #41 — committed to pact-foundation/pact-go by mefellows 7 years ago
Hi @mefellows , My test passed with no error with the latest v0.0.9. Thank you for your work.
Hi @bethesque I forked the repo herehttps://github.com/madarou/pact-ruby-e2e-example/tree/master, added some chinese, and followed the:
steps. The test passed without error. My env: go version go1.8.3 linux/amd64, ruby 2.3.1p112 (2016-04-26) [x86_64-linux-gnu], Linux Mint 18.1 Serena