def setUpTestData(cls):
        models.ContractType.objects.create(base_id=1,
                                           name='Concessão de obras públicas')
        models.ContractType.objects.create(base_id=2,
                                           name='Aquisição de bens móveis')
        models.ContractType.objects.create(base_id=3, name='Outros')

        cls.field = ContractTypeField(required=False)
class ContractTypeFieldTestCase(TestCase):
    def setUp(self):
        crawler = ContractsStaticDataCrawler()
        crawler.retrieve_and_save_contracts_types()

        self.field = ContractTypeField(required=False)

    def test_none(self):
        self.assertEqual(self.field.clean('Não definido.'), None)

    def test_one(self):
        self.assertEqual(self.field.clean('Concessão de obras públicas'),
                         models.ContractType.objects.get(name='Concessão de obras públicas'))

    def test_more_than_one(self):
        self.assertEqual(self.field.clean('Concessão de obras públicas<br/>Aquisição de bens móveis'),
                         models.ContractType.objects.get(name='Concessão de obras públicas'))

        self.assertEqual(self.field.clean('Aquisição de bens móveis<br/>Concessão de obras públicas'),
                         models.ContractType.objects.get(name='Aquisição de bens móveis'))

        self.assertEqual(self.field.clean('Aquisição de bens móveis; Concessão de obras públicas'),
                         models.ContractType.objects.get(name='Aquisição de bens móveis'))

    def test_others(self):
        self.assertEqual(self.field.clean('Outros Tipos (Concessão de exploração de bens do domínio público)'),
                         models.ContractType.objects.get(name='Outros'))
    def setUp(self):
        crawler = ContractsStaticDataCrawler()
        crawler.retrieve_and_save_contracts_types()

        self.field = ContractTypeField(required=False)