Skip to content

Commit 2d451d5

Browse files
committed
Additional checks in generate_unique_survey_link
1 parent 88ee35a commit 2d451d5

File tree

3 files changed

+39
-1
lines changed

3 files changed

+39
-1
lines changed

CHANGELOG.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
0.5.0
22
* More tests
33

4-
0.4.1 4/18/2016
4+
0.4.1 4/20/2016
55
[+] createDistribution function (for generating unique survey links)
66
[+] generate_unique_survey_link function
77
[*] fixed bug #17 preserve order of responses in getLegacyResponseData

pyqualtrics/__init__.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -531,11 +531,23 @@ def generate_unique_survey_link(self, SurveyID, LibraryID, PanelID, Distribution
531531
:return:
532532
"""
533533
assert isinstance(EmbeddedData, (dict, type(None)))
534+
assert isinstance(SurveyID, (str, unicode))
535+
assert isinstance(DistributionID, (str, unicode))
536+
534537
if EmbeddedData is None:
535538
EmbeddedData = {}
536539
recipient_id = self.addRecipient(LibraryID, PanelID, FirstName=FirstName, LastName=LastName, Email=Email, ExternalDataRef=ExternalDataRef, Language=Language, ED=EmbeddedData)
537540
if recipient_id is None:
541+
# last_error_message is set by addRecipient function
542+
return None
543+
if "_" not in SurveyID:
544+
self.last_error_message = "Invalid SurveyID format (must be SV_xxxxxxxxxx)"
538545
return None
546+
547+
if "_" not in DistributionID:
548+
self.last_error_message = "Invalid DistributionID format (must be EMD_xxxxxxxxxx)"
549+
return None
550+
539551
link = DistributionID.split("_")[1] + "_" + SurveyID.split("_")[1] + "_" + recipient_id
540552

541553
link = "http://new.qualtrics.com/SE?Q_DL=%s" % link

pyqualtrics/tests.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -454,6 +454,32 @@ def test_generate_unique_survey_link(self):
454454
self.assertNotEquals(link2, link3)
455455
self.assertIsNone(self.qualtrics.last_error_message)
456456

457+
link4 = self.qualtrics.generate_unique_survey_link(
458+
SurveyID="",
459+
LibraryID=self.library_id,
460+
PanelID=panel_id,
461+
DistributionID=distribution_id,
462+
FirstName="Py",
463+
LastName="Qualtrics",
464+
465+
)
466+
self.assertIsNone(link4)
467+
self.assertIsNotNone(self.qualtrics.last_error_message)
468+
print self.qualtrics.last_error_message
469+
470+
link5 = self.qualtrics.generate_unique_survey_link(
471+
SurveyID=self.survey_id,
472+
LibraryID="",
473+
PanelID=panel_id,
474+
DistributionID=distribution_id,
475+
FirstName="Py",
476+
LastName="Qualtrics",
477+
478+
)
479+
self.assertIsNone(link4)
480+
self.assertIsNotNone(self.qualtrics.last_error_message)
481+
print self.qualtrics.last_error_message
482+
457483
self.qualtrics.deletePanel(self.library_id, panel_id)
458484
self.assertIsNone(self.qualtrics.last_error_message)
459485

0 commit comments

Comments
 (0)