Code Duplication    Length = 19-25 lines in 2 locations

tests/test_query.py 1 location

@@ 9-33 (lines=25) @@
6
from .fake_model import get_fake_model
7
8
9
def test_annotate_hstore_key_ref():
10
    """Tests whether annotating using a :see:HStoreRef expression
11
    works correctly.
12
13
    This allows you to select an individual hstore key."""
14
15
    model_fk = get_fake_model({
16
        'title': HStoreField(),
17
    })
18
19
    model = get_fake_model({
20
        'fk': models.ForeignKey(model_fk, on_delete=models.CASCADE)
21
    })
22
23
    fk = model_fk.objects.create(title={'en': 'english', 'ar': 'arabic'})
24
    model.objects.create(fk=fk)
25
26
    queryset = (
27
        model.objects
28
        .annotate(english_title=HStoreRef('fk__title', 'en'))
29
        .values('english_title')
30
        .first()
31
    )
32
33
    assert queryset['english_title'] == 'english'
34
35
36
def test_hstore_f_ref():

tests/test_query_values.py 1 location

@@ 53-71 (lines=19) @@
50
    assert result[1] == modelobj.title['ar']
51
52
53
@pytest.mark.xfail(reason='has to be fixed as part of issue #8')
54
def test_values_hstore_key_through_fk():
55
    """Tests whether selecting a single key from a :see:HStoreField
56
    using the query set's .values() works properly when there's a
57
    foreign key relationship involved."""
58
59
    fmodel = get_fake_model({
60
        'name': HStoreField()
61
    })
62
63
    model = get_fake_model({
64
        'fk': models.ForeignKey(fmodel, on_delete=models.CASCADE)
65
    })
66
67
    fobj = fmodel.objects.create(name={'en': 'swen', 'ar': 'arabic swen'})
68
    model.objects.create(fk=fobj)
69
70
    result = list(model.objects.values('fk__name__ar'))[0]
71
    assert result['fk__name__ar'] == fobj.name['ar']
72