Solution: Added a work around to allow testing of `upsert_validator show`
Added TODOs to detail what is wrong with the broken test
Raising it as a GitHub issue to fix the bad test
Solution: BigchainDB by default writes logs in the same directory it is
run. The `looponfail` feature provided by pytest waits for changes in
the current directory, so it is continuously triggered. This patch tells
pytest to only watch the `bigchaindb` and `tests` directories.
Solution: if a TRANSFER transaction is validated after a CREATE
transaction, the system crashes with `AttributeError: 'NoneType' object
has no attribute 'txid'`.
This happens because querying `get_spent` checks the attributes `txid`
and `output` of `input.fulfills` for every transaction in the current
buffer (`current_transactions`). For a CREATE, `input.fulfills` is None,
so the check would fail.
The solution is to check if `input.fulfills` is defined. If not, then
the current transaction cannot spend any output, so we can safely skip
it.
Solution: Transfer vote to the election public key; generalize implemenation to handle election txn type
* Problem: Upsert valdiator 'new' doesn't accept public in base64 format
Solution: Tendermint stores all keys in base64 format so it would suitable to
abandon base58 encoding in favour of base64 encoding
* Problem: Not test for invalid execution of upsert-validator 'new'
Solution: Write tests to when invalid power or private key path has been supplied
* Problem: Exceptions are not informational when executing upsert-validator
Solution: generate error logs or print statement indicating success
Solution: have a more general approach to process transaction types. If
a transaction does *not* contain `asset.id`, then the `id` of the
`asset` is the `id` of the transaction.
Solution: Wrote a test. Also changed validator node_ids to include the name of the test they're part of, which should prevent `DuplicateTransaction` collisions during testing.
* Problem: `run_upsert_validator_approve` was getting the voting power in a convoluted way
Solution: Changed it to get the voting power from the election outputs
* Problem: `run_upsert_validator_approve` casts votes for *all* voters, not just the user calling the command
Solution: Filter vote txs by the users public key
* Problem: Docs needed a more specific description of how to input the path to the private-key file
Solution: Changed the wording a bit
* Problem: several tests are skipped
Solution: activate or remove tests
* Problem: store_transaction is deprecated
Solution: replace it with store_bulk_transaction
* Problem: we don't test the transaction split
Solution: undelete `test_store_transaction`
* Problem: failing tests
Solution: merge master and change deprecated store_transaction
* Problem: tests in test_bigchain_api are not activated
Solution: remove or active tests
* Problem: TransactionNotInValidBlock was removed
Solution: remove TransactionNotInValidBlock from tests
* Problem: Config settings docs missing some configs & inconsistent
Solution: Document some undocumented config settings and make the config settings docs page more consistent
* Problem: No docs about how config setting env var name determined
Solution: Explain and show the relationship between the config-file name and the environment variable name of config settings
* Problem: Source files contain no license info
Solution: Add comments with SPDX license info to source files
* Python 3 files don't need # -*- coding: utf-8 -*-