Skip to content
finance-mock is a mock HTTP server that generates API responses similar to actual remote sources. It can be used to make test suites faster and less brittle.
Go Other
  1. Go 98.9%
  2. Other 1.1%
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
fixture
scripts
server
utils
vendor
yfin
.dockerignore
.gitignore
.travis.yml
Dockerfile
Gopkg.lock
Gopkg.toml
LICENSE
Makefile
README.md
bindata.go
goreleaser.yml
main.go

README.md

finance-mock Build Status

finance-mock is a mock HTTP server that can be used in lieu of various remote financial data sources. The primary purpose of this server is for building test suites for piquette/finance-go that don't have to interact with the real financial data sources, making testing quicker and less prone to unpredictable upstream api errors/changes out of our control.

Usage

Get it from the Homebrew tap or download it from the releases page:

brew tap piquette/finance-mock
brew install finance-mock

# start a finance-mock service at login
brew services start finance-mock

# upgrade if you already have it
brew upgrade finance-mock

Or if you have Go installed you can build it:

go get -u github.com/piquette/finance-mock

Run it:

finance-mock

Or with docker:

# build
docker build . -t finance-mock
# run
docker run -p 12111:12111 finance-mock

Then from another terminal:

curl -i http://localhost:12111/v7/finance/quote\?symbols\=AAPL

By default, finance-mock runs on port 12111, but is configurable with the -port option.

Development

Testing

Run the test suite:

go test ./...

Binary data

The project uses [go-bindata] to bundle fixture data into bindata.go so that it's automatically included with built executables. Rebuild it with:

# Make sure you have the go-bindata executable (it's not vendored into this
# repository).
go get -u github.com/jteeuwen/go-bindata/...

# Generates `bindata.go`.
go generate

Release

Release builds are generated with goreleaser. Make sure you have the software and a GITHUB_TOKEN: set in your env.

go get -u github.com/goreleaser/goreleaser
export GITHUB_TOKEN=...

Commit changes and tag HEAD:

git tag v[NEW_VERSION_NUMBER]
git push origin --tags

Then run goreleaser and you're done! Check releases (it also pushes to the Homebrew tap).

goreleaser --rm-dist
You can’t perform that action at this time.