コード例 #1
0
ファイル: tests.py プロジェクト: pgwthf/TSB
    def test_ParamFormField(self):
        test_dict = {'rule': 'test', 'nd': 5, 'par_type': 'exit'}
        params = params_exit.exit_test(**test_dict)
        parameters = params.parameters

        from django import forms
        class ParamTestForm(forms.Form):
            chars = forms.CharField()
            params = ParamFormField(par_type='exit', parameters=parameters)

        # empty form
        ptf = ParamTestForm()
        self.assertFalse(ptf.is_bound)
        self.assertFalse(ptf.is_valid())
        self.assertFalse(ptf.errors)
        self.assertIn('value="20"', str(ptf['params']))
        self.assertIn('value="test"', str(ptf['params']))
        self.assertNotIn('value="exit"', str(ptf['params']))

        # bound_form
        ptf2 = ParamTestForm({'params_0': 'test', 'params_1': 5, 'chars': 'Hello'})
        self.assertIsInstance(params, _Param)
        self.assertTrue(ptf2.is_bound)
        self.assertTrue(ptf2.is_valid())
        self.assertFalse(ptf2.errors)
        self.assertIsInstance(ptf2.cleaned_data['params'], _Param)
        self.assertEqual(str2dict(unicode(ptf2.cleaned_data['params'])), str2dict(unicode(params)))
コード例 #2
0
ファイル: tests.py プロジェクト: pgwthf/TSB
    def test_custom_field(self):
        test_dict = {'rule': 'test', 'nd': 5, 'par_type': 'exit'}
        params = params_exit.exit_test(**test_dict)
        pm = ParamModel.objects.create(params=params)

        self.assertEqual(pm._meta.get_field('params').verbose_name, 'parameters')
        self.assertEqual(pm.params._nd, 5)
        self.assertEqual(pm.params.rule, 'test')
        self.assertEqual(pm.params.par_type, 'exit')

        pm1 = ParamModel.objects.get(pk=pm.pk)
        self.assertIsInstance(pm1.params, _Param)
        self.assertEqual(str2dict(unicode(pm1.params)), {'rule': 'test', 'nd': 5})

        test_dict2 = {'rule': 'test', 'nd': 8, 'par_type': 'exit'}
        params2 = params_exit.exit_test(**test_dict2)
        self.assertQuerysetEqual(ParamModel.objects.filter(
                params__in=[params, params2]), [{'rule': 'test', 'nd': 5}],
                lambda qs: str2dict(unicode(qs.params)))
        self.assertRaises(TypeError, lambda: ParamModel.objects.filter(
                                                        params__lt=params))

        stream = serializers.serialize("json", ParamModel.objects.all())
        self.assertEqual(stream, '[{"pk": %d, "model": "metasystem.parammodel", "fields": {"params": "ccollections\\nOrderedDict\\np1\\n((lp2\\n(lp3\\nS\'rule\'\\np4\\naS\'test\'\\np5\\naa(lp6\\nS\'nd\'\\np7\\naI5\\naatRp8\\n."}}]' % pm1.pk)

        obj = list(serializers.deserialize("json", stream))[0]
        self.assertEqual(obj.object, pm)

        pm.delete()

        test_dict = {'rule': 'test', 'nd': 5, 'par_type': 'exit'}
        params = params_exit.exit_test(**test_dict)
        pm1 = ParamModel.objects.create(params=params)
        test_dict = {'rule': 'test', 'nd': 8, 'par_type': 'exit'}
        params = params_exit.exit_test(**test_dict)
        pm2 = ParamModel.objects.create(params=params)

        self.assertQuerysetEqual(
            ParamModel.objects.all(), [
                {'rule': 'test', 'nd': 5},
                {'rule': 'test', 'nd': 8},
            ],
            lambda qs: str2dict(unicode(qs.params))
        )
コード例 #3
0
ファイル: tests.py プロジェクト: pgwthf/TSB
    def test_defer(self):
        test_dict = {'rule': 'test', 'nd': 5, 'par_type': 'exit'}
        params = params_exit.exit_test(**test_dict)
        pm = ParamModel.objects.create(params=params)
        self.assertIsInstance(pm.params, _Param)

        pm = ParamModel.objects.get(pk=pm.pk)
        self.assertIsInstance(pm.params, _Param)
        self.assertEqual(pm.params.get_dict(), params.get_dict())

        pm = ParamModel.objects.defer('params').get(pk=pm.pk)
        pm.save()

        pm = ParamModel.objects.get(pk=pm.pk)
        self.assertIsInstance(pm.params, _Param)
        self.assertEqual(pm.params.get_dict(), params.get_dict())
コード例 #4
0
ファイル: tests.py プロジェクト: pgwthf/TSB
    def test_ParamFormField_MODEL(self):
        test_dict = {'rule': 'test', 'nd': 5, 'par_type': 'exit'}
        params = params_exit.exit_test(**test_dict)
        pm = ParamModel.objects.create(params=params)
        parameters = params.parameters
        from django import forms
        class ParamTestForm(forms.ModelForm):
            params = ParamFormField(par_type='exit', parameters=parameters)
            class Meta:
                model = ParamModel

        # create an empty form
        ptf = ParamTestForm()
        self.assertFalse(ptf.is_bound)
        self.assertFalse(ptf.is_valid())
        self.assertFalse(ptf.errors)
        self.assertIn('value="20"', str(ptf['params']))
        self.assertIn('value="test"', str(ptf['params']))
        self.assertNotIn('value="exit"', str(ptf['params']))

        # create an unbound form
        pm = ParamModel.objects.get(pk=pm.pk)
        ptf2 = ParamTestForm(instance=pm)
        self.assertFalse(ptf2.is_bound)
        self.assertFalse(ptf2.errors)
        self.assertIn('value="5"', str(ptf2['params']))
        self.assertIn('value="test"', str(ptf2['params']))
        self.assertNotIn('value="exit"', str(ptf2['params']))

        # create an bound form
        ptf2 = ParamTestForm({'params_0': 'test', 'params_1': 5, 'chars': 'Hello'})
        self.assertIsInstance(params, _Param)
        self.assertTrue(ptf2.is_bound)
        self.assertTrue(ptf2.is_valid())
        self.assertFalse(ptf2.errors)
        self.assertIsInstance(ptf2.cleaned_data['params'], _Param)
        self.assertEqual(str2dict(unicode(ptf2.cleaned_data['params'])), str2dict(unicode(params)))