Skip to content

Commit 6d1bb7c

Browse files
committed
Merge 06c00ad into d5510d2
2 parents d5510d2 + 06c00ad commit 6d1bb7c

File tree

2 files changed

+29
-3
lines changed

2 files changed

+29
-3
lines changed

mozregression/test_runner.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
import subprocess
1414
import shlex
1515
import os
16+
import tempfile
17+
import mozfile
1618

1719
from mozregression.launchers import create_launcher
1820
from mozregression.errors import TestCommandError
@@ -84,6 +86,20 @@ class ManualTestRunner(TestRunner):
8486
A TestRunner subclass that run builds and ask for evaluation by
8587
prompting in the terminal.
8688
"""
89+
def __init__(self, fetch_config, persist=None, launcher_kwargs=None):
90+
self.delete_persist = False
91+
if persist is None:
92+
# always keep the downloaded files for manual runner
93+
# this allows to not re-download a file if a user retry a build.
94+
persist = tempfile.mkdtemp()
95+
self.delete_persist = True
96+
TestRunner.__init__(self, fetch_config, persist=persist,
97+
launcher_kwargs=launcher_kwargs)
98+
99+
def __del__(self):
100+
if self.delete_persist:
101+
mozfile.remove(self.persist)
102+
87103
def get_verdict(self, build_info):
88104
"""
89105
Ask and returns the verdict.

tests/unit/test_test_runner.py

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import unittest
88
from mock import patch, Mock
99
import datetime
10+
import os
1011

1112
from mozregression.fetch_configs import create_config
1213
from mozregression import test_runner, errors
@@ -16,7 +17,7 @@ def setUp(self):
1617
fetch_config = create_config('firefox', 'linux', 64)
1718
fetch_config.set_nightly_repo('my-repo')
1819
fetch_config.set_inbound_branch('my-branch')
19-
self.runner = test_runner.ManualTestRunner(fetch_config)
20+
self.runner = test_runner.ManualTestRunner(fetch_config, persist='/path/to')
2021

2122
@patch('mozregression.test_runner.create_launcher')
2223
def test_nightly_create_launcher(self, create_launcher):
@@ -29,7 +30,7 @@ def test_nightly_create_launcher(self, create_launcher):
2930
})
3031
create_launcher.assert_called_with('firefox', 'http://my-url',
3132
persist_prefix='2014-12-25--my-repo--',
32-
persist=None)
33+
persist='/path/to')
3334
self.assertEqual(result_launcher, launcher)
3435

3536
@patch('mozregression.test_runner.create_launcher')
@@ -44,7 +45,7 @@ def test_inbound_create_launcher(self, create_launcher):
4445
})
4546
create_launcher.assert_called_with('firefox', 'http://my-url',
4647
persist_prefix='123--my-branch--',
47-
persist=None)
48+
persist='/path/to')
4849
self.assertEqual(result_launcher, launcher)
4950

5051
@patch('__builtin__.raw_input')
@@ -69,6 +70,15 @@ def test_evaluate(self, get_verdict, create_launcher):
6970
launcher.stop.assert_called_with()
7071
self.assertEqual(result[0], 'g')
7172

73+
def test_persist_none_is_overidden(self):
74+
runner = test_runner.ManualTestRunner(self.runner.fetch_config, persist=None)
75+
persist = runner.persist
76+
self.assertIsNotNone(persist)
77+
self.assertTrue(os.path.isdir(persist))
78+
# deleting the runner also delete the temp dir
79+
del runner
80+
self.assertFalse(os.path.exists(persist))
81+
7282
class TestCommandTestRunner(unittest.TestCase):
7383
def setUp(self):
7484
fetch_config = create_config('firefox', 'linux', 64)

0 commit comments

Comments
 (0)