Completed
Push — master ( e43325...f31dcf )
by
unknown
01:16
created

fill_db_feeds()   B

Complexity

Conditions 1

Size

Total Lines 32

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
c 1
b 0
f 0
dl 0
loc 32
rs 8.8571
1
from sqlalchemy.ext.declarative import declarative_base
2
from sqlalchemy import (
3
    Column,
4
    Integer,
5
    String,
6
    ForeignKey,
7
8
)
9
from sqlalchemy.orm import relationship, sessionmaker
10
11
Base = declarative_base()
12
13
14
class Feed(Base):
15
    __tablename__ = 'feeds'
16
    id = Column(Integer, primary_key=True)
17
18
    entries = relationship(
19
        'FeedEntry',
20
        backref='feed',
21
        cascade='all, delete-orphan'
22
    )
23
24
25
class FeedEntry(Base):
26
    __tablename__ = 'feedentries'
27
28
    id = Column(Integer, primary_key=True)
29
    uri = Column(String, nullable=False)
30
    feed_id = Column(Integer, ForeignKey('feeds.id'))
31
32
33
def fill_db_feeds(engine):
34
    Base.metadata.drop_all(engine)
35
    Base.metadata.create_all(engine)
36
    Session = sessionmaker(
37
        bind=engine
38
    )
39
    DB = Session()
40
41
    feed1 = Feed(id=1)
42
43
    feedentry1 = FeedEntry(
44
        uri='https://dev-id.erfgoed.net/tests/1',
45
    )
46
    feedentry2 = FeedEntry(
47
        uri='https://dev-id.erfgoed.net/tests/2',
48
    )
49
    feed1.entries = [feedentry1, feedentry2]
50
    DB.add(feed1)
51
52
    feed2 = Feed(id=2)
53
54
    feedentry3 = FeedEntry(
55
        uri='https://dev-id.erfgoed.net/tests/3',
56
    )
57
    feedentry4 = FeedEntry(
58
        uri='https://dev-id.erfgoed.net/tests/4',
59
    )
60
    feed2.entries = [feedentry3, feedentry4]
61
    DB.add(feed2)
62
63
    DB.commit()
64
    DB.close()
65