def test_keep_fields(self): with open('map.csv', 'w') as f: f.write('id,a\n5,a') reader = ReaderWriter() reader.rows = [('a', 'b'), ('a', 'b'), ('c', 'd')] writer = ReaderWriter() m.extract_map(reader, writer, 'map.csv', 'a', 'id', keep_fields=True) self.assertEqual( [('a', 'b', 'id'), ('a', 'b', 5), ('c', 'd', 6)], writer.rows)
def test_existing_map_used(self): with open('map.csv', 'w') as f: f.write('id,a\n5,a') reader = ReaderWriter() reader.rows = [('a', 'b'), ('a', 'b'), ('c', 'd')] writer = ReaderWriter() m.extract_map(reader, writer, 'map.csv', 'a', 'id') self.assertEqual( sorted([('b', 5), ('d', 6)]), sorted(writer.rows[1:]))
def test_changed_map_is_written_out(self): with open('map.csv', 'w') as f: f.write('id,a\n5,a') reader = ReaderWriter() reader.rows = [('a', 'b'), ('a', 'b'), ('c', 'd')] writer = ReaderWriter() m.extract_map(reader, writer, 'map.csv', 'a', 'id') with open('map.csv') as f: items = tuple(csv.reader(f)) self.assertEqual( sorted((('id', 'a'), ('5', 'a'), ('6', 'c'))), map(tuple, sorted(items)))