def test_xls_export(self): """Ensures exported XLS data matches source data""" qs_filter = { "pk__in": [x.pk for x in self.snapshots] } qs = BuildingSnapshot.objects.filter(**qs_filter) fields = list(_get_fields_from_queryset(qs)) fields.append("canonical_building__id") export_filename = export_xls(qs, fields) export_file = xlrd.open_workbook(export_filename) worksheet = export_file.sheet_by_name(export_file.sheet_names()[0]) self.assertEqual(worksheet.cell_value(0, len(fields)-1), 'ID') for i in range(len(self.snapshots)): for j in range(len(fields)): field = fields[j] components = field.split("__") qs_val = qs[i] for component in components: qs_val = getattr(qs_val, component) if qs_val == None: break if isinstance(qs_val, Manager) or qs_val == None: qs_val = u'' else: qs_val = unicode(qs_val) xls_val = worksheet.cell_value(i + 1, j) self.assertEqual(qs_val, xls_val)
def test_csv_export(self): """Ensures exported CSV data matches source data""" qs_filter = {"pk__in": [x.pk for x in self.snapshots]} qs = BuildingSnapshot.objects.filter(**qs_filter) fields = list(_get_fields_from_queryset(qs)) fields.append("canonical_building__id") export_filename = export_csv(qs, fields) export_file = open(export_filename) reader = csv.reader(export_file) header = reader.next() self.assertEqual(header[len(fields) - 1], 'ID') for i in range(len(self.snapshots)): row = reader.next() for j in range(len(fields)): field = fields[j] components = field.split("__") qs_val = qs[i] for component in components: qs_val = getattr(qs_val, component) if qs_val == None: break if isinstance(qs_val, Manager) or qs_val == None: qs_val = u'' else: qs_val = unicode(qs_val) csv_val = row[j] self.assertEqual(qs_val, csv_val) export_file.close() os.remove(export_filename)
def test_csv_export(self): """Ensures exported CSV data matches source data""" qs_filter = { "pk__in": [x.pk for x in self.snapshots] } qs = BuildingSnapshot.objects.filter(**qs_filter) fields = list(_get_fields_from_queryset(qs)) fields.append("canonical_building__id") export_filename = export_csv(qs, fields) export_file = open(export_filename) reader = csv.reader(export_file) header = reader.next() self.assertEqual(header[len(fields)-1], 'ID') for i in range(len(self.snapshots)): row = reader.next() for j in range(len(fields)): field = fields[j] components = field.split("__") qs_val = qs[i] for component in components: qs_val = getattr(qs_val, component) if qs_val == None: break if isinstance(qs_val, Manager) or qs_val == None: qs_val = u'' else: qs_val = unicode(qs_val) csv_val = row[j] self.assertEqual(qs_val, csv_val) export_file.close() os.remove(export_filename)
def test_xls_export(self): """Ensures exported XLS data matches source data""" qs_filter = {"pk__in": [x.pk for x in self.snapshots]} qs = BuildingSnapshot.objects.filter(**qs_filter) fields = list(_get_fields_from_queryset(qs)) fields.append("canonical_building__id") export_filename = export_xls(qs, fields) export_file = xlrd.open_workbook(export_filename) worksheet = export_file.sheet_by_name(export_file.sheet_names()[0]) self.assertEqual(worksheet.cell_value(0, len(fields) - 1), 'ID') for i in range(len(self.snapshots)): for j in range(len(fields)): field = fields[j] components = field.split("__") qs_val = qs[i] for component in components: qs_val = getattr(qs_val, component) if qs_val == None: break if isinstance(qs_val, Manager) or qs_val == None: qs_val = u'' else: qs_val = unicode(qs_val) xls_val = worksheet.cell_value(i + 1, j) self.assertEqual(qs_val, xls_val)