Quando o Django executa o conjunto de testes, ele cria um novo banco de dados, no seu caso
test_finance
. O usuário postgres com nome de usuário django
não tem permissão para criar um banco de dados, daí a mensagem de erro. Quando você executa
migrate
ou syncdb
, o Django não tenta criar o finance
banco de dados, para que você não receba nenhum erro. Você pode adicionar a permissão createdb ao usuário django executando o seguinte comando no shell postgres como um superusuário (dica de chapéu para esta resposta de estouro de pilha).
=> ALTER USER django CREATEDB;
Observação: O nome de usuário usado no
ALTER USER <username> CREATEDB;
O comando precisa corresponder ao usuário do banco de dados em seus arquivos de configurações do Django. Neste caso, o pôster original, tinha o usuário como django
a resposta acima.