Coverage for ckanext/udc/licenses/model.py: 80%

20 statements  

« prev     ^ index     » next       coverage.py v7.7.1, created at 2026-01-19 23:48 +0000

1from sqlalchemy import Column, MetaData, ForeignKey, func 

2from sqlalchemy import types 

3from sqlalchemy.ext.declarative import declarative_base 

4 

5import ckan.model as model 

6 

7log = __import__('logging').getLogger(__name__) 

8 

9Base = declarative_base() 

10 

11class CustomLicense(Base): 

12 """ 

13 A custom license that can be added by users. 

14 """ 

15 __tablename__ = 'custom_license' 

16 

17 id = Column(types.UnicodeText, primary_key=True) 

18 title = Column(types.UnicodeText) 

19 url = Column(types.UnicodeText) 

20 user_id = Column(types.UnicodeText, ForeignKey(model.User.id), nullable=False) 

21 

22 

23 @classmethod 

24 def get(cls, id): 

25 return model.Session.query(cls).filter(cls.id == id).first() 

26 

27 def as_dict(self): 

28 d = { 

29 'id': self.id, 

30 'title': self.title, 

31 'url': self.url, 

32 'user_id': self.user_id 

33 } 

34 

35 return d 

36 

37def init_tables(): 

38 Base.metadata.create_all(model.meta.engine)