def test_csv_generated_is_valid(self, pmock): p = Poll(question='Q') copy_insert(Poll, [p]) fd = StringIO(pmock.call_args[0][0]) csvf = csv.reader(fd) rows = [row for row in csvf] self.assertEqual(rows[0][0], 'Q') self.assertEqual(rows[0][1], '')
def test_actual_foreign_key_value_is_extracted_correctly(self, pmock): p = Poll(pk=1) c = Choice(poll=p, choice_text='Text', votes=0) copy_insert(Choice, [c]) fd = pmock.call_args[0][0] csvf = csv.reader(fd) rows = [row for row in csvf] data = rows[0] self.assertEqual(int(data[0]), 1)
def test_specified_columns_only_are_used(self, pmock): copy_insert(Poll, self.entries, columns=['question']) columns = pmock.call_args[0][3] self.assertEqual(len(columns), 1) self.assertEqual(columns[0], 'question') copy_insert(Poll, self.entries, columns=['pub_date']) columns = pmock.call_args[0][3] self.assertEqual(len(columns), 1) self.assertEqual(columns[0], 'pub_date') copy_insert(Poll, self.entries, columns=['question', 'pub_date']) columns = pmock.call_args[0][3] self.assertEqual(len(columns), 2) self.assertEqual(columns[0], 'question') self.assertEqual(columns[1], 'pub_date')
def test_csv_generated_number_of_lines(self, pmock): p = Poll(question='Q') copy_insert(Poll, [p]) fd = StringIO(pmock.call_args[0][0]) lines = fd.readlines() self.assertEqual(len(lines), 1)
def test_all_non_pk_columns_are_used_if_none_specified(self, pmock): copy_insert(Poll, self.entries) columns = pmock.call_args[0][3] self.assertEqual(len(columns), 2)
def test_no_empty_string(self, pmock): copy_insert( Choice, [self.c, self.c], columns=['poll', 'choice_text', 'votes'] ) csv_file = pmock.call_args[0][0] self.assertEqual('1,"",\n1,"",\n', csv_file)
def test_empty_string_start_newline(self, pmock): copy_insert( Choice, [self.c, self.c], columns=['choice_text', 'poll', 'votes'] ) csv_file = pmock.call_args[0][0] self.assertEqual('"",1,\n"",1,\n', csv_file)
def test_no_empty_string(self, pmock): copy_insert(Choice, [self.c, self.c], columns=['poll', 'choice_text', 'votes']) csv_file = pmock.call_args[0][0] self.assertEqual('1,"",\n1,"",\n', csv_file)
def test_empty_string_start_newline(self, pmock): copy_insert(Choice, [self.c, self.c], columns=['choice_text', 'poll', 'votes']) csv_file = pmock.call_args[0][0] self.assertEqual('"",1,\n"",1,\n', csv_file)