Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCode 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)
commit7f0fb1b6424473e5e861e7fc9810b56012f2a8cb (patch)
tree5f24dbb13c62c55161081eb0a6ae14f70b2ba2e4
parent5be15885b52ebde2d0a9e00b4036f06dffa9d446 (diff)
change add_result_files to recive the file_name
-rw-r--r--webapp/polls/models.py13
-rw-r--r--webapp/polls/tests/poll_result_file_tests.py30
-rw-r--r--webapp/polls/tests/poll_tests.py7
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]