[damned-lies] Slightly modernized some code parts
- From: Claude Paroz <claudep src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [damned-lies] Slightly modernized some code parts
- Date: Fri, 22 Aug 2014 11:47:32 +0000 (UTC)
commit 9cd79aacd8ae2c4fc9de604bcf4e0dbaea1e7341
Author: Claude Paroz <claude 2xlibre net>
Date: Fri Aug 22 12:11:24 2014 +0200
Slightly modernized some code parts
And fixed some test failures.
languages/tests.py | 4 +-
stats/management/commands/update-trans.py | 28 +++++++++++-------------
stats/potdiff.py | 8 +++---
stats/tests/tests.py | 33 +++++++++++++---------------
stats/utils.py | 33 ++++++++++++----------------
5 files changed, 48 insertions(+), 58 deletions(-)
---
diff --git a/languages/tests.py b/languages/tests.py
index 7082adc..5e68ede 100644
--- a/languages/tests.py
+++ b/languages/tests.py
@@ -26,8 +26,8 @@ class LanguageTestCase(TestCase):
fixtures = ['sample_data.json']
def testLanguageReleaseXML(self):
- response = self.client.get(reverse("languages.views.language_release_xml", args=['fr',
'gnome-2-30']))
- self.assertContains(response, """<stats language="fr" release="gnome-2-30">""")
+ response = self.client.get(reverse("languages.views.language_release_xml", args=['fr', 'gnome-3-8']))
+ self.assertContains(response, """<stats language="fr" release="gnome-3-8">""")
def test_language_from_ianacode(self):
Language.objects.create(name='Belarussian', locale='be')
diff --git a/stats/management/commands/update-trans.py b/stats/management/commands/update-trans.py
index 3c97bdc..33e691b 100644
--- a/stats/management/commands/update-trans.py
+++ b/stats/management/commands/update-trans.py
@@ -4,8 +4,8 @@ import re
import shutil
import itertools
+from django.core.management import call_command
from django.core.management.base import BaseCommand
-from django.core.management.commands import makemessages
from django.db.models import F
from teams.models import Team
@@ -42,22 +42,20 @@ class Command(BaseCommand):
# Extract DB translatable strings into database-content.py
dbfile = os.path.join(os.path.abspath('.'), 'database-content.py')
- f=open(dbfile, 'w')
-
- for value in itertools.chain(
- Team.objects.values_list('description', flat=True),
- Language.objects.exclude(name__exact=F('locale')).values_list('name', flat=True),
- Domain.objects.distinct().values_list('description', flat=True),
- Module.objects.exclude(name__exact=F('description')).values_list('description', flat=True),
- Module.objects.filter(comment__isnull=False).values_list('comment', flat=True),
- Release.objects.values_list('description', flat=True)):
- if value:
- value = re.sub(r'\r\n|\r|\n', '\n', value)
- f.write("_(u\"\"\"%s\"\"\")\n" % value.encode('utf-8'))
- f.close()
+ with open(dbfile, 'w') as fh:
+ for value in itertools.chain(
+ Team.objects.values_list('description', flat=True),
+ Language.objects.exclude(name__exact=F('locale')).values_list('name', flat=True),
+ Domain.objects.distinct().values_list('description', flat=True),
+ Module.objects.exclude(name__exact=F('description')).values_list('description', flat=True),
+ Module.objects.filter(comment__isnull=False).values_list('comment', flat=True),
+ Release.objects.values_list('description', flat=True)):
+ if value:
+ value = re.sub(r'\r\n|\r|\n', '\n', value)
+ fh.write("_(u\"\"\"%s\"\"\")\n" % value.encode('utf-8'))
# Run makemessages -l ll
- makemessages.make_messages(lang_code, verbosity=2, extensions=['.html'])
+ call_command('makemessages', locale=lang_code, verbosity=2, extensions=['.html'])
# Delete database-content.py
os.unlink(dbfile)
diff --git a/stats/potdiff.py b/stats/potdiff.py
index 33c175b..c74ae3f 100644
--- a/stats/potdiff.py
+++ b/stats/potdiff.py
@@ -24,13 +24,13 @@ USE_DIFFLIB = 0
def diff(pota, potb):
"""Returns a list of differing lines between two files."""
- f1 = open(pota, "r")
- data1 = f1.read()
+ with open(pota, "r") as f1:
+ data1 = f1.read()
res1 = _parse_contents(data1)
res1.sort()
- f2 = open(potb, "r")
- data2 = f2.read()
+ with open(potb, "r") as f2:
+ data2 = f2.read()
res2 = _parse_contents(data2)
res2.sort()
diff --git a/stats/tests/tests.py b/stats/tests/tests.py
index 49c7473..20ea96e 100644
--- a/stats/tests/tests.py
+++ b/stats/tests/tests.py
@@ -122,8 +122,7 @@ class ModuleTestCase(TestCase):
self.assertEqual(fr_po_stat.pot_url(), u"/POT/gnome-hello.master/gnome-hello.master.pot")
self.assertEqual(fr_doc_stat.po_url(), u"/POT/gnome-hello.master/docs/gnome-hello-help.master.fr.po")
self.assertRaises(Statistics.DoesNotExist, Statistics.objects.get, pk=ghost_stat.pk)
- from stats.utils import has_toolkit
- if has_toolkit:
+ if utils.has_toolkit:
self.assertEqual(fr_po_stat.po_url(reduced=True),
u"/POT/gnome-hello.master/gnome-hello.master.fr.reduced.po")
self.assertEqual(fr_po_stat.translated(scope='part'), 44)
@@ -163,13 +162,11 @@ class ModuleTestCase(TestCase):
# Create a new file with translation
new_file_path = os.path.join(self.branch.co_path(), "dummy_file.py")
new_string = "Dummy string for D-L tests"
- f = open(new_file_path, 'w')
- f.write("a = _('%s')\n" % new_string)
- f.close()
+ with open(new_file_path, 'w') as fh:
+ fh.write("a = _('%s')\n" % new_string)
# Add the new file to POTFILES.in
- f = open(os.path.join(self.branch.co_path(), "po", "POTFILES.in"), 'a')
- f.write("dummy_file.py\n")
- f.close()
+ with open(os.path.join(self.branch.co_path(), "po", "POTFILES.in"), 'a') as fh:
+ fh.write("dummy_file.py\n")
# Regenerate stats (mail should be sent)
self.branch.update_stats(force=False, checkout=False)
# Assertions
@@ -242,9 +239,9 @@ class ModuleTestCase(TestCase):
self.assertIn(cmd, cmds[idx])
self.assertIn('intltool-update -g', cmds[-1])
- # Check lang has been inserted in LINGUAS file, before 'fr'
+ # Check lang has been inserted in LINGUAS file, before 'de'
with open(os.path.join(branch.co_path(), domain.directory, 'LINGUAS')) as fh:
- self.assertIn('bem\nfr', fh.read())
+ self.assertIn('bem\nde', fh.read())
# Documentation
domain = self.mod.domain_set.get(name='help')
@@ -285,7 +282,7 @@ class ModuleTestCase(TestCase):
class StatisticsTests(TestCase):
fixtures = ['sample_data.json']
def test_total_stats_for_lang(self):
- rel = Release.objects.get(name="gnome-2-30")
+ rel = Release.objects.get(name="gnome-3-8")
total_for_lang = rel.total_for_lang(Language.objects.get(locale='fr'))
self.assertEqual(total_for_lang['ui']['total'], total_for_lang['ui_part']['total'])
self.assertTrue(total_for_lang['ui']['untranslated'] == total_for_lang['ui_part']['untranslated'] ==
0)
@@ -296,18 +293,18 @@ class StatisticsTests(TestCase):
def test_stats_links(self):
pot_stats = Statistics.objects.get(
- branch__module__name='zenity', branch__name='gnome-2-30',
+ branch__module__name='zenity', branch__name='gnome-3-8',
domain__name='po', language__isnull=True)
- self.assertEqual(pot_stats.po_url(), "/POT/zenity.gnome-2-30/zenity.gnome-2-30.pot")
+ self.assertEqual(pot_stats.po_url(), "/POT/zenity.gnome-3-8/zenity.gnome-3-8.pot")
stats = Statistics.objects.get(
- branch__module__name='zenity', branch__name='gnome-2-30',
+ branch__module__name='zenity', branch__name='gnome-3-8',
domain__name='po', language__locale='it')
- self.assertEqual(stats.po_url(), "/POT/zenity.gnome-2-30/zenity.gnome-2-30.it.po")
- self.assertEqual(stats.po_url(reduced=True),
"/POT/zenity.gnome-2-30/zenity.gnome-2-30.it.reduced.po")
+ self.assertEqual(stats.po_url(), "/POT/zenity.gnome-3-8/zenity.gnome-3-8.it.po")
+ self.assertEqual(stats.po_url(reduced=True), "/POT/zenity.gnome-3-8/zenity.gnome-3-8.it.reduced.po")
# Same for a fake stats
stats = FakeLangStatistics(pot_stats, Language.objects.get(locale='bem'))
- self.assertEqual(stats.po_url(), "/module/po/zenity/po/gnome-2-30/bem.po")
- self.assertEqual(stats.po_url(reduced=True), "/module/po/zenity/po/gnome-2-30/bem-reduced.po")
+ self.assertEqual(stats.po_url(), "/module/po/zenity/po/gnome-3-8/bem.po")
+ self.assertEqual(stats.po_url(reduced=True), "/module/po/zenity/po/gnome-3-8/bem-reduced.po")
def _test_update_statistics(self):
# Temporarily deactivated, since update_stats cannot receive stats any more
diff --git a/stats/utils.py b/stats/utils.py
index c6a3106..7fd04bc 100644
--- a/stats/utils.py
+++ b/stats/utils.py
@@ -163,9 +163,8 @@ def po_grep(in_file, out_file, filter_):
# Probably bad filter syntax in DB (TODO: log it)
return
grepfilter = pogrep.GrepFilter(filter_str, filter_loc, useregexp=True, invertmatch=True,
keeptranslations=True)
- out = open(out_file, "w")
- pogrep.rungrep(in_file, out, None, grepfilter)
- out.close()
+ with open(out_file, "w") as out:
+ pogrep.rungrep(in_file, out, None, grepfilter)
# command-line variant:
"""
cmd = "pogrep --invert-match --header --search=locations --regexp \"gschema\\.xml\\.in|schemas\\.in\"
%(full_po)s %(part_po)s" % {
@@ -490,7 +489,8 @@ def check_identical_figures(fig_stats, base_path, lang):
for fig in fig_stats:
trans_path = os.path.join(base_path, lang, fig['path'])
if os.access(trans_path, os.R_OK):
- fig_file = open(trans_path, 'rb').read()
+ with open(trans_path, 'rb') as fh:
+ fig_file = fh.read()
trans_hash = hashlib.md5(fig_file).hexdigest()
if fig['hash'] == trans_hash:
errors.append(("warn-ext", "Figures should not be copied when identical to original (%s)." %
trans_path))
@@ -518,15 +518,11 @@ def is_po_reduced(file_path):
def copy_file(file1, file2):
try:
- fin = open(file1, "rb")
- fout = open(file2, "wb")
-
- block = fin.read(16*1024)
- while block:
- fout.write(block)
+ with open(file1, "rb") as fin, open(file2, "wb") as fout:
block = fin.read(16*1024)
- fout.close()
- fin.close()
+ while block:
+ fout.write(block)
+ block = fin.read(16*1024)
if os.access(file2, os.R_OK):
return 1
@@ -538,13 +534,12 @@ def copy_file(file1, file2):
def compute_md5(full_path):
m = hashlib.md5()
block_size=2**13
- f = open(full_path)
- while True:
- data = f.read(block_size)
- if not data:
- break
- m.update(data)
- f.close()
+ with open(full_path) as fh:
+ while True:
+ data = fh.read(block_size)
+ if not data:
+ break
+ m.update(data)
return m.hexdigest()
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]