test_scope   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 46
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 35
dl 0
loc 46
rs 10
c 0
b 0
f 0
wmc 3

3 Methods

Rating   Name   Duplication   Size   Complexity  
A TestDataBase.test_create_db() 0 2 1
A TestDataBase.test_related_data() 0 18 1
A TestDataBase.test_crud_model() 0 15 1
1
import os
2
3
from tests.conftest import DB_NAME
4
from weekorm import model
5
6
7
class TestDataBase:
8
9
    def test_create_db(self, db):
10
        assert os.path.exists(DB_NAME)
11
12
    def test_crud_model(self, db):
13
        class City(model.Model):
14
            name = model.CharField()
15
            capital = model.BooleanField(default=False)
16
17
        city = City(name='Moscow', capital=False)
18
        city.save()
19
        assert len(City.query().all()) == 1
20
        _city = City.query().first()
21
        _city.capital = True
22
        _city.save()
23
        assert City.query().filter(capital=False).all() == []
24
        city = City.query().filter(capital=True).first()
25
        city.delete()
26
        assert len(City.query().all()) == 0
27
28
    def test_related_data(self, db):
29
        class Country(model.Model):
30
            name = model.CharField()
31
32
            def __str__(self):
33
                return f'Country: {self.name}'
34
35
        class Language(model.Model):
36
            name = model.CharField()
37
            country = model.ForeignKey(Country)
38
39
            def __str__(self):
40
                return f'Language: {self.name}'
41
42
        country = Country(name='Russia').save()
43
        Language(name='Russian', country=country).save()
44
        language = Language.query().first()
45
        assert language.country.name == 'Russia'
46