Merge ~cjwatson/ols-charm-deps:resource-warnings into ols-charm-deps:master

Proposed by Colin Watson
Status: Merged
Approved by: Guillermo Gonzalez
Approved revision: 84a7dbcc776be65897b5bb8c4c0f0b89c2e7bc03
Merge reported by: Otto Co-Pilot
Merged at revision: not available
Proposed branch: ~cjwatson/ols-charm-deps:resource-warnings
Merge into: ols-charm-deps:master
Diff against target: 64 lines (+10/-5)
4 files modified
layer/ols-pg/lib/ols/postgres.py (+2/-1)
layer/ols/actions/show-config (+2/-1)
layer/ols/reactive/ols.py (+2/-1)
layer/ols/unit_tests/test_ols.py (+4/-2)
Reviewer Review Type Date Requested Status
Guillermo Gonzalez Approve
Review via email: mp+379741@code.launchpad.net

Commit message

Fix ResourceWarnings on Python 3

Description of the change

Python 3 tends to produce warnings for code along the lines of open(...).read(). Use context manager forms instead.

To post a comment you must log in.
Revision history for this message
Guillermo Gonzalez (verterok) wrote :

+1

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/layer/ols-pg/lib/ols/postgres.py b/layer/ols-pg/lib/ols/postgres.py
2index 98f9da3..55bd3a4 100644
3--- a/layer/ols-pg/lib/ols/postgres.py
4+++ b/layer/ols-pg/lib/ols/postgres.py
5@@ -12,7 +12,8 @@ from ols import base
6
7 def db_relations(only_admin=False):
8 databases = layer.options().get('ols-pg', {}).get('databases', {})
9- metadata = yaml.safe_load(open('metadata.yaml').read())
10+ with open('metadata.yaml') as metadata_file:
11+ metadata = yaml.safe_load(metadata_file.read())
12 requires = metadata.get('requires', {})
13 relations = {}
14
15diff --git a/layer/ols/actions/show-config b/layer/ols/actions/show-config
16index 140b0b4..5ea46c2 100755
17--- a/layer/ols/actions/show-config
18+++ b/layer/ols/actions/show-config
19@@ -17,6 +17,7 @@ for name, path in ols.base.service_paths().items():
20 continue
21 if os.path.isfile(path):
22 contents[name + 'path'] = path
23- contents[name] = open(path).read()
24+ with open(path) as f:
25+ contents[name] = f.read()
26
27 hookenv.action_set(contents)
28diff --git a/layer/ols/reactive/ols.py b/layer/ols/reactive/ols.py
29index ef0a0ed..dcc9b01 100644
30--- a/layer/ols/reactive/ols.py
31+++ b/layer/ols/reactive/ols.py
32@@ -34,7 +34,8 @@ def install_service():
33 'Service installed, but not configured.')
34 version_info = os.path.join(code_dir(), 'version-info.txt')
35 if os.path.exists(version_info):
36- hookenv.application_version_set(open(version_info).read().strip())
37+ with open(version_info) as version_file:
38+ hookenv.application_version_set(version_file.read().strip())
39 set_state('ols.service.installed')
40
41
42diff --git a/layer/ols/unit_tests/test_ols.py b/layer/ols/unit_tests/test_ols.py
43index 3676aae..3693574 100644
44--- a/layer/ols/unit_tests/test_ols.py
45+++ b/layer/ols/unit_tests/test_ols.py
46@@ -359,7 +359,8 @@ class RenderTest(TestCase):
47
48 changed = render.render('test.tmpl', target, context)
49 self.assertTrue(changed)
50- output = open(target, 'r').read()
51+ with open(target) as f:
52+ output = f.read()
53 self.assertEqual(output, 'bar')
54 self.assertFalse(os.path.exists(target + '.tmp'))
55
56@@ -372,7 +373,8 @@ class RenderTest(TestCase):
57
58 changed = render.render('test.tmpl', target, context)
59 self.assertTrue(changed)
60- output = open(target, 'r').read()
61+ with open(target) as f:
62+ output = f.read()
63 self.assertEqual(output, 'bar')
64 self.assertFalse(os.path.exists(target + '.tmp'))
65

Subscribers

People subscribed via source and target branches