forked from adamlaska/datatracker
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfactories.py
More file actions
94 lines (71 loc) · 2.82 KB
/
factories.py
File metadata and controls
94 lines (71 loc) · 2.82 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
# Copyright The IETF Trust 2018-2020, All Rights Reserved
# -*- coding: utf-8 -*-
import datetime
import factory
from ietf.ipr.models import (
IprDisclosureBase, HolderIprDisclosure, ThirdPartyIprDisclosure, NonDocSpecificIprDisclosure,
GenericIprDisclosure, IprDocRel, RelatedIpr, IprEvent
)
def _fake_patent_info():
return "Date: %s\nNotes: %s\nTitle: %s\nNumber: %s\nInventor: %s\n" % (
(datetime.datetime.today()-datetime.timedelta(days=365)).strftime("%Y-%m-%d"),
factory.Faker('paragraph'),
factory.Faker('sentence', nb_words=8),
'US9999999',
factory.Faker('name'),
)
class IprDisclosureBaseFactory(factory.django.DjangoModelFactory):
class Meta:
model = IprDisclosureBase
by = factory.SubFactory('ietf.person.factories.PersonFactory')
compliant = True
holder_legal_name = factory.Faker('name')
state_id='posted'
submitter_name = factory.Faker('name')
submitter_email = factory.Faker('email')
title = factory.Faker('sentence')
@factory.post_generation
def docs(self, create, extracted, **kwargs):
if not create:
return
if extracted:
for doc in extracted:
IprDocRel.objects.create(disclosure=self,document=doc.docalias.first())
@factory.post_generation
def updates(self, create, extracted, **kwargs):
if not create:
return
if extracted:
for ipr in extracted:
RelatedIpr.objects.create(source=self,target=ipr,relationship_id='updates')
class HolderIprDisclosureFactory(IprDisclosureBaseFactory):
class Meta:
model = HolderIprDisclosure
holder_contact_email = factory.Faker('email')
holder_contact_name = factory.Faker('name')
licensing_id = 'reasonable'
patent_info = _fake_patent_info()
class ThirdPartyIprDisclosureFactory(IprDisclosureBaseFactory):
class Meta:
model = ThirdPartyIprDisclosure
ietfer_name = factory.Faker('name')
ietfer_contact_email = factory.Faker('email')
patent_info = _fake_patent_info()
class NonDocSpecificIprDisclosureFactory(IprDisclosureBaseFactory):
class Meta:
model = NonDocSpecificIprDisclosure
holder_contact_email = factory.Faker('email')
holder_contact_name = factory.Faker('name')
patent_info = _fake_patent_info()
class GenericIprDisclosureFactory(IprDisclosureBaseFactory):
class Meta:
model = GenericIprDisclosure
holder_contact_email = factory.Faker('email')
holder_contact_name = factory.Faker('name')
class IprEventFactory(factory.django.DjangoModelFactory):
class Meta:
model = IprEvent
type_id = 'submitted'
by = factory.SubFactory('ietf.person.factories.PersonFactory')
disclosure = factory.SubFactory(IprDisclosureBaseFactory)
desc = factory.Faker('sentence')