diff options
author | Code Raguet <ignacio.code@gmail.com> | 2013-09-04 13:40:59 (GMT) |
---|---|---|
committer | Code Raguet <ignacio.code@gmail.com> | 2013-09-04 13:40:59 (GMT) |
commit | 7f0fb1b6424473e5e861e7fc9810b56012f2a8cb (patch) | |
tree | 5f24dbb13c62c55161081eb0a6ae14f70b2ba2e4 | |
parent | 5be15885b52ebde2d0a9e00b4036f06dffa9d446 (diff) |
change add_result_files to recive the file_name
-rw-r--r-- | webapp/polls/models.py | 13 | ||||
-rw-r--r-- | webapp/polls/tests/poll_result_file_tests.py | 30 | ||||
-rw-r--r-- | webapp/polls/tests/poll_tests.py | 7 |
3 files changed, 41 insertions, 9 deletions
diff --git a/webapp/polls/models.py b/webapp/polls/models.py index 3d7cc3a..90d20c8 100644 --- a/webapp/polls/models.py +++ b/webapp/polls/models.py @@ -466,12 +466,12 @@ class Poll(Document, AbstracErrorObject): result_files.append(result_file(f)) return result_files - def add_result_files(self, files_path): + def add_result_files(self, path_and_name): results_path = self.results_path cp = lambda src, dst: shutil.copyfile(src, dst) - for path in files_path: + for path, name in path_and_name: src = path - file_name = os.path.basename(path) + file_name = name dst = os.path.join(results_path, file_name) try: cp(src, dst) @@ -1532,3 +1532,10 @@ class PollResultFile(object): def get_upload_timestamp(self): time_string = self.data['upload_timestamp'] return time_string + + def save(self): + name = self.name + file_path = self.file.name + poll_id = self.data['poll_id'] + poll = Poll.get(poll_id) + poll.add_result_files([(file_path, name)]) diff --git a/webapp/polls/tests/poll_result_file_tests.py b/webapp/polls/tests/poll_result_file_tests.py index 3a1f9d6..3a27ac1 100644 --- a/webapp/polls/tests/poll_result_file_tests.py +++ b/webapp/polls/tests/poll_result_file_tests.py @@ -1,13 +1,13 @@ -import unittest import json import StringIO import tempfile import os -from polls.models import PollResultFile +from polls.models import PollResultFile, Poll +from utils.test import MongoTestCase -class PollResultFileTest(unittest.TestCase): +class PollResultFileTest(MongoTestCase): def json_construc(self, data): return json.dumps( @@ -95,3 +95,27 @@ class PollResultFileTest(unittest.TestCase): file_.close() self.assertEqual(time_string, result.get_upload_timestamp()) + + def test_it_should_be_available_for_his_related_poll_when_it_saves(self): + poll = Poll({'name': 'poll'}) + poll_id = str(poll.save()) + poll = Poll.get(poll_id) + self.assertEqual(0, len(poll.get_result_files())) + + data = self.data + data['poll_id'] = poll_id + json_str = self.json_construc(data) + file_ = tempfile.NamedTemporaryFile(suffix='.poll_result', + delete=False) + expected_name = 'result.poll_result' + try: + file_.write(json_str) + result_file = PollResultFile(file_) + result_file.name = expected_name + result_file.save() + finally: + file_.close() + + self.assertEqual(1, len(poll.get_result_files())) + result_name = poll.get_result_files()[0].get_file_name() + self.assertEqual(expected_name, result_name) diff --git a/webapp/polls/tests/poll_tests.py b/webapp/polls/tests/poll_tests.py index 5c173bc..4f58787 100644 --- a/webapp/polls/tests/poll_tests.py +++ b/webapp/polls/tests/poll_tests.py @@ -418,7 +418,8 @@ class PollResultFilesTest(MongoTestCase): ) uploaded_file_path = tmp_path - poll.add_result_files([uploaded_file_path]) + name = 'result.poll_result' + poll.add_result_files([(uploaded_file_path, name)]) results_files = poll.get_result_files() self.assertEqual(1, len(results_files)) self.assertTrue(hasattr(results_files[0], 'get_numero_escuela')) @@ -438,10 +439,10 @@ class AddResultFilesTest(MongoTestCase): uploaded_file = tempfile.NamedTemporaryFile(dir=temp_dir, suffix='.poll_result') uploaded_file_path = uploaded_file.name - uploaded_filename = os.path.basename(uploaded_file.name) + uploaded_filename = 'other_name.poll_result' poll = self.poll - poll.add_result_files([uploaded_file_path]) + poll.add_result_files([(uploaded_file_path, uploaded_filename)]) stub = lambda f: os.path.basename(f.name) results = poll.get_result_files(as_instance_of=stub) result_filename = results[0] |