コード例 #1
0
ファイル: test_meta.py プロジェクト: mrjmad/creme_crm
    def test_field_info03(self):
        "Invalid fields."
        with self.assertRaises(FieldDoesNotExist):
            meta.FieldInfo(FakeContact, 'invalid')

        with self.assertRaises(FieldDoesNotExist):
            meta.FieldInfo(FakeContact, 'image__invalid')

        with self.assertRaises(FieldDoesNotExist):
            meta.FieldInfo(FakeContact, 'invalid__invalidtoo')
コード例 #2
0
ファイル: test_meta.py プロジェクト: mrjmad/creme_crm
    def test_field_info_slice06(self):
        "Step is forbidden"
        fi = meta.FieldInfo(FakeContact, 'image__user')

        with self.assertRaises(ValueError):
            _ = fi[::0]

        with self.assertRaises(ValueError):
            _ = fi[::2]
コード例 #3
0
ファイル: test_meta.py プロジェクト: mrjmad/creme_crm
    def test_field_info_slice05(self):
        "Big start"
        fi = meta.FieldInfo(FakeContact, 'image__user')

        with self.assertNoException():
            sub_fi = fi[5:]  # Empty

        self.assertEqual(FakeContact, sub_fi.model)
        self.assertFalse(sub_fi)
コード例 #4
0
ファイル: test_meta.py プロジェクト: HybirdCorp/creme_crm-2.0
    def test_field_info01(self):
        "Simple field"
        fi = meta.FieldInfo(FakeContact, 'first_name')

        self.assertEqual(FakeContact, fi.model)
        self.assertEqual(1, len(fi))
        self.assertIs(True, bool(fi))

        with self.assertNoException():
            base_field = fi[0]

        self.assertEqual(FakeContact._meta.get_field('first_name'), base_field)

        self.assertEqual(FakeOrganisation._meta.get_field('name'),
                         meta.FieldInfo(FakeOrganisation, 'name')[0])

        # FK
        self.assertEqual(FakeContact._meta.get_field('image'),
                         meta.FieldInfo(FakeContact, 'image')[0])
コード例 #5
0
ファイル: test_meta.py プロジェクト: mrjmad/creme_crm
    def test_field_info02(self):
        "depth > 1"
        fi = meta.FieldInfo(FakeContact, 'image__name')

        self.assertEqual(2, len(fi))
        self.assertEqual(FakeContact._meta.get_field('image'), fi[0])
        self.assertEqual(FakeImage._meta.get_field('name'), fi[1])

        self.assertEqual(f'{_("Photograph")} - {_("Name")}', fi.verbose_name)

        with self.assertNoException():
            fi_as_list = [
                *meta.FieldInfo(FakeContact, 'image__user__username')
            ]

        self.assertListEqual([
            FakeContact._meta.get_field('image'),
            FakeImage._meta.get_field('user'),
            get_user_model()._meta.get_field('username'),
        ], fi_as_list)
コード例 #6
0
ファイル: test_meta.py プロジェクト: mrjmad/creme_crm
    def test_field_info_slice03(self):
        "Negative start."
        fi = meta.FieldInfo(FakeContact, 'image__user__username')

        with self.assertNoException():
            sub_fi = fi[-1:]  # User.username

        User = get_user_model()
        self.assertEqual(User, sub_fi.model)
        self.assertEqual(1, len(sub_fi))
        self.assertEqual(User._meta.get_field('username'), sub_fi[0])
コード例 #7
0
ファイル: test_meta.py プロジェクト: HybirdCorp/creme_crm-2.0
    def test_field_info02(self):
        "depth > 1"
        fi = meta.FieldInfo(FakeContact, 'image__name')

        self.assertEqual(2, len(fi))
        self.assertEqual(FakeContact._meta.get_field('image'), fi[0])
        self.assertEqual(FakeImage._meta.get_field('name'), fi[1])

        self.assertEqual(
            _(u'Photograph') + ' - ' + _(u'Name'), fi.verbose_name)

        with self.assertNoException():
            fi_as_list = list(
                meta.FieldInfo(FakeContact, 'image__user__username'))

        self.assertEqual([
            FakeContact._meta.get_field('image'),
            FakeImage._meta.get_field('user'),
            get_user_model()._meta.get_field('username'),
        ], fi_as_list)
コード例 #8
0
ファイル: test_meta.py プロジェクト: mrjmad/creme_crm
    def test_field_info_slice02(self):
        "Stop (no start)."
        fi = meta.FieldInfo(FakeContact, 'image__user__username')

        with self.assertNoException():
            sub_fi = fi[:2]  # Contact.image__user__username

        self.assertIsInstance(sub_fi, meta.FieldInfo)
        self.assertEqual(FakeContact, sub_fi.model)
        self.assertEqual(2, len(sub_fi))
        self.assertEqual(FakeContact._meta.get_field('image'), sub_fi[0])
        self.assertEqual(FakeImage._meta.get_field('user'), sub_fi[1])
コード例 #9
0
ファイル: test_meta.py プロジェクト: mrjmad/creme_crm
    def test_field_info_slice04(self):
        "'very' negative start."
        fi = meta.FieldInfo(FakeContact, 'image__user__username')

        with self.assertNoException():
            sub_fi = fi[-4:]  # No change (Contact.image__user__username)

        self.assertEqual(FakeContact, sub_fi.model)
        self.assertEqual(3, len(sub_fi))
        self.assertEqual(FakeContact._meta.get_field('image'), sub_fi[0])
        self.assertEqual(FakeImage._meta.get_field('user'), sub_fi[1])
        self.assertEqual(get_user_model()._meta.get_field('username'),
                         sub_fi[2])
コード例 #10
0
ファイル: test_meta.py プロジェクト: mrjmad/creme_crm
    def test_field_info_slice01(self):
        "Start"
        fi = meta.FieldInfo(FakeContact, 'image__user__username')

        with self.assertNoException():
            sub_fi = fi[1:]  # Image.user__username

        self.assertIsInstance(sub_fi, meta.FieldInfo)
        self.assertEqual(FakeImage, sub_fi.model)
        self.assertEqual(2, len(sub_fi))
        self.assertEqual(FakeImage._meta.get_field('user'), sub_fi[0])
        self.assertEqual(get_user_model()._meta.get_field('username'),
                         sub_fi[1])

        empty_sub_fi = fi[3:]
        self.assertEqual(FakeContact, empty_sub_fi.model)
        self.assertEqual(0, len(empty_sub_fi))
        self.assertIs(False, bool(empty_sub_fi))