mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-05-27 17:39:51 -04:00
0ad106f57241273fd8ba0bc5317913f998a45905
client fixture as ‘private’
No tests are now using the `client` fixture directly so we can rename it. Python convention is to use an `_underscore` for things which should be considered semi private. This should discourage people from writing new tests with these old fixtures. New tests should always use `client_request`. Want to be logged in with a different user? Call `client_request.login(user)` first. Don’t want to be logged in? Call `client_request.logout()` first (most of our tests need to be logged in). Need an instance of `Response` object not an instance of `BeautifulSoup`? Use `client_request.get_response` or `client_request.post_response`. Need to pass in a URL, not arguments to `url_for`? Use `client_request.get_url(…)` or `client_request.post_url(…)`. Need to pass in a URL and get a response back? Use `client_request.get_response_from_url(…)` or `client_request.post_response_from_url(…)`.
…
…
…
…
…
…
…
notifications-admin
GOV.UK Notify admin application - https://www.notifications.service.gov.uk/
- Register and manage users
- Create and manage services
- Send batch emails and SMS by uploading a CSV
- Show history of notifications
Setting up
Python version
At the moment we run Python 3.9 in production.
NPM packages
brew install node
NPM is Node's package management tool. n is a tool for managing different versions of Node. The following installs n and uses the long term support (LTS) version of Node.
npm install -g n
n lts
environment.sh
In the root directory of the application, run:
echo "
export NOTIFY_ENVIRONMENT='development'
export FLASK_APP=application.py
export FLASK_ENV=development
export WERKZEUG_DEBUG_PIN=off
"> environment.sh
AWS credentials
To run parts of the app, such as uploading letters, you will need appropriate AWS credentials. See the Wiki for more details.
To run the application
# install dependencies, etc.
make bootstrap
# run the web app
make run-flask
Then visit localhost:6012.
Any Python code changes you make should be picked up automatically in development. If you're developing JavaScript code, run npm run watch to achieve the same.
To test the application
# install dependencies, etc.
make bootstrap
# run all the tests
make test
# continuously run js tests
npm run test-watch
To run a specific JavaScript test, you'll need to copy the full command from package.json.
Further docs
Description
Languages
Python
69.3%
HTML
16.6%
JavaScript
11.1%
SCSS
0.9%
Nunjucks
0.7%
Other
1.4%