text: import six
  from django.core.files.uploadedfile import SimpleUploadedFile
  from django.test import TestCase
  
  from hordak.forms.statement_csv_import import TransactionCsvImportForm
  from hordak.models import Account, TransactionCsvImport
  from hordak.tests.utils import DataProvider
  
  
  class TransactionCsvImportFormTestCase(DataProvider, TestCase):
      def setUp(self):
          self.account = self.account(is_bank_account=True, type=Account.TYPES.asset)
          self.f = SimpleUploadedFile(
              "data.csv", six.binary_type(b"Number,Date,Account,Amount,Subcategory,Memo")
          )
  
      def test_create(self):
          form = TransactionCsvImportForm(
              data=dict(bank_account=self.account.pk), files=dict(file=self.f)
          )
          self.assertTrue(form.is_valid(), form.errors)
          form.save()
          obj = TransactionCsvImport.objects.get()
          self.assertEqual(obj.columns.count(), 6)
          self.assertEqual(obj.hordak_import.bank_account, self.account)
  
      def test_edit(self):
          obj = TransactionCsvImport.objects.create(
              hordak_import=self.statement_import(bank_account=self.account),
              has_headings=True,
              file=self.f,
          )
          form = TransactionCsvImportForm(
              data=dict(bank_account=self.account.pk),
              files=dict(file=self.f),
              instance=obj,
          )
          self.assertTrue(form.is_valid(), form.errors)
          form.save()
          self.assertEqual(obj.columns.count(), 0)
  