to make tests pass in 2027
Background:
As part of my work on reproducible builds for openSUSE, I check
that software still gives identical build results in the future.
The usual offset is +15 years, because that is how long I expect
some software will be used in some places.
This showed up failing tests in our package build.
See https://reproducible-builds.org/ for why this matters.
Note: I tested that i586 builds still pass tests on 2036-12-01
so are not affected by the year 2038 bug yet.
i586 builds in 2037 suffer from a y2038 bug (unrelated to this change):
botocore/utils.py parse_timestamp threw a
ValueError: Invalid timestamp "2174774434": Parser must be a string or character stream, not long
Python 3.8 will probably [raise SyntaxWarnings](https://docs.python.org/3/whatsnew/3.8.html#changes-in-python-behavior) on the flake8 F632 issue raised below.
[flake8](http://flake8.pycqa.org) testing of https://github.com/spulec/moto on Python 3.7.1
$ __flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics__
```
./tests/test_awslambda/test_lambda.py:1137:24: F632 use ==/!= to compare str, bytes, and int literals
assert len(messages) is 3
^
1 F632 use ==/!= to compare str, bytes, and int literals
1
```
In all of the tests of `create_db_instance()`, the `AllocatedStorage`
parameter is provided. The [RDS API
reference](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html)
says this parameter is optional; however, when none is provided, moto
returns an obscure error message:
```
self = <botocore.parsers.QueryParser object at 0x113745890>, shape = <Shape(Integer)>, text = 'None'
@_text_content
def _handle_integer(self, shape, text):
> return int(text)
E ValueError: invalid literal for int() with base 10: 'None'
/usr/local/Cellar/pyenv/1.2.13_1/versions/3.7.4/envs/rds_encrypt/lib/python3.7/site-packages/botocore/parsers.py:466: ValueError
```
This PR adds default values that correspond to the current default API
behaviors.