From 642b7b2324c2cdd82e21bddb5c08a47f5dca4e4d Mon Sep 17 00:00:00 2001
From: Chris Sinchok <chris@sinchok.com>
Date: Fri, 17 Mar 2017 11:13:01 -0500
Subject: [PATCH] Overriding sigint handler during psql subprocess
---
django/db/backends/postgresql/client.py | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/django/db/backends/postgresql/client.py b/django/db/backends/postgresql/client.py
index 005f43d..1b41267 100644
a
|
b
|
|
1 | 1 | import os |
| 2 | import signal |
2 | 3 | import subprocess |
3 | 4 | |
4 | 5 | from django.core.files.temp import NamedTemporaryFile |
… |
… |
class DatabaseClient(BaseDatabaseClient):
|
54 | 55 | # If the current locale can't encode the data, we let |
55 | 56 | # the user input the password manually. |
56 | 57 | pass |
| 58 | existing_handler = signal.getsignal(signal.SIGINT) |
| 59 | signal.signal(signal.SIGINT, lambda sig, frame: None) |
57 | 60 | subprocess.check_call(args) |
58 | 61 | finally: |
| 62 | signal.signal(signal.SIGINT, existing_handler) |
59 | 63 | if temp_pgpass: |
60 | 64 | temp_pgpass.close() |
61 | 65 | if 'PGPASSFILE' in os.environ: # unit tests need cleanup |