예제 #1
0
    def test_access_before_save_breaks_pre_save(self):
        translation.activate('en')
        value_en = "test1_en"
        option = Option(name=value_en)
        self.assertEqual(option.name, value_en)
        option.save()

        translation.activate('ro')
        self.assertEqual(option.name, value_en)
        value_ro = "test1_ro"
        option.name = value_ro
        self.assertEqual(option.name, value_ro)
        option.save()
        self.assertEqual(option.name, value_ro)

        translation.activate('en')
        value_en = "test2_en"
        option.name = value_en
        self.assertEqual(
            option.name, value_en
        )  # this access causes the creation of a new KeyValue for 'en', which
        # causes the pre_save handler to skip creation of a new KeyValue for 'ro' language
        # and causes the last assertEqual to fail
        option.save()
        self.assertEqual(option.name, value_en)

        translation.activate('ro')
        self.assertEqual(option.name, value_ro)
예제 #2
0
 def add_new_records():
     value = "test string that does not already exist in db"
     option = Option(name=value)
     option.save()
     count_kv = KeyValue.objects.filter(language=get_default_language(),
                                        value=value).count()
     self.assertEqual(count_kv, 1,
                      u"Got %d KeyValues after concurrent insert instead of 1." % count_kv)
예제 #3
0
 def add_new_records():
     value = "test string that does not already exist in db"
     option = Option(name=value)
     option.save()
     count_kv = KeyValue.objects.filter(
         language=get_default_language(), value=value).count()
     self.assertEqual(
         count_kv, 1,
         u"Got %d KeyValues after concurrent insert instead of 1." %
         count_kv)
예제 #4
0
    def test_access_before_save_breaks_pre_save(self):
        translation.activate('en')
        value_en = "test1_en"
        option = Option(name=value_en)
        self.assertEqual(option.name, value_en)
        option.save()

        translation.activate('ro')
        self.assertEqual(option.name, value_en)
        value_ro = "test1_ro"
        option.name = value_ro
        self.assertEqual(option.name, value_ro)
        option.save()
        self.assertEqual(option.name, value_ro)

        translation.activate('en')
        value_en = "test2_en"
        option.name = value_en
        self.assertEqual(option.name, value_en) # this access causes the creation of a new KeyValue for 'en', which
                                                # causes the pre_save handler to skip creation of a new KeyValue for 'ro' language
                                                # and causes the last assertEqual to fail
        option.save()
        self.assertEqual(option.name, value_en)

        translation.activate('ro')
        self.assertEqual(option.name, value_ro)
예제 #5
0
    def test_nullable(self):
        option = Option(name="some_value")
        option.save()

        translation.activate('en')
        self.assertEqual(option.name, "some_value")
        self.assertEqual(option.nullable, '')

        translation.activate('ro')
        self.assertEqual(option.name, "some_value")
        self.assertEqual(option.nullable, '')