def fetch_emails(self): imap = imaplib.IMAP4_SSL(self.imaps_server, self.imaps_port) imap.login(self.username, self.password) imap.select(self.imaps_folder) typ, data = imap.search(None, 'SUBJECT', 'Parlamentspapiere') for num in data[0].split(): typ, data = imap.fetch(num, '(RFC822)') # print('Message %s\n%s\n' % (num, data[0][1])) drucksachen = DrucksachenExtractor(data[0][1]).parse() for d in drucksachen: f = bytearray() r = requests.get(d.link, stream=True) '''for chunk in r.iter_content(chunk_size=1024): if chunk: # filter out keep-alive new chunks f += chunk ''' if r.status_code == 200: headers = {'content-type': 'application/octet-stream'} res = requests.post( self.redmine_url + '/uploads.json?key=' + self.redmine_api_key, data = r, headers = headers # files={'file': f}, headers = headers ) if res.status_code != 201: # 201 == Created print('requests.post: ', res.status_code) self.upload = None else: token = res.json()['upload']['token'] self.upload = [{ 'token': token, 'filename': d.number + '.pdf', 'description': d.number, 'content': 'application/pdf' }] else: self.upload = None issue = Issue({ 'subject': d.number + ":" + d.title , 'project_id': 62, # 'Dokumente' 'tracker_id': 11, 'description': d.link, 'uploads': self.upload }) res = issue.save() if not res: print(issue.subject, '=> ', res) status, msg_ids = imap.copy(num, self.imaps_folder_read) # TODO: print(status) imap.store(num, '+FLAGS', '\\Deleted') imap.close() imap.logout()
def add_sample_projects(session, username): for project_data in projects_data: name = truncate(project_data['name'], 40) description = truncate(project_data['description'], 90) project = Project(name=name, description=description, owner=username) issues = project_data['issues'] count = len(issues) counter = Counter() for (i, issue_data) in enumerate(issues): title = truncate(issue_data['title'], 40) description = truncate(issue_data['description'], 90) if i < count * .1: status = 3 elif i < count * .3: status = 2 elif i < count * .6: status = 1 else: status = 0 index = counter[status] counter[status] += 1 issue = Issue(title=title, description=description, project=project, type=get_type(), assignee='', storypoints=get_storypoints(), status=status, priority=get_priority(), index=index) session.add(issue) session.add(project) session.commit()
def _parse_issue(element): """Parse element as issue. Issue must not contain subelements and attributes. :param element: an instance of Element (from ElementTree) :return: an instance of model.Issue """ if len(element) != 0: raise ParseError("Unexpected subelements in issue") if "creator" not in element.attrib: raise ParseError("No creator in issue") if len(element.attrib) != 1: raise ParseError("Unexpected attributes in issue") return Issue(creator=element.attrib["creator"], value=element.text if element.text is not None else "")
def create_issue(project_id): username = get_username(request) project = Project.query.get(project_id) if project.owner != username: abort(403) body = request.get_json() data = issue_schema.load(body) index = max([issue.index for issue in project.issues]) + 1 issue = Issue(title=data['title'], description=data['description'], type=data['type'], storypoints=data['storypoints'], priority=data['priority'], project_id=project.id, status=0, index=index) db.session.add(issue) db.session.commit() result = issue_schema.dump(Issue.query.get(issue.id)) return Response(json.dumps(result), mimetype='application/json', status=200)
u"""strings::S_PROTOCOL_VERSION] = SMember(""" u"""TNumberSchemaItem<int>::create(), true);\n""" u"""params_members[ns_smart_device_link::ns_json_handler::""" u"""strings::S_PROTOCOL_TYPE] = SMember(""" u"""TNumberSchemaItem<int>::create(), true);\n""") EXPECTED_REQ_RESP_RESULT = "".join([EXPECTED_NOTIFICATION_RESULT, ( u"""params_members[ns_smart_device_link::ns_json_handler::""" u"""strings::S_CORRELATION_ID] = SMember(""" u"""TNumberSchemaItem<int>::create(), true);\n""")]) DESCRIPTION = [u"Description Line1", u"Description Line2"] DESIGN_DESCRIPTION = [u"Design Line1"] ISSUES = [Issue(value=u"Issue1"), Issue(value=u"Issue2"), Issue(value=u"Issue3")] TODOS = [u"Do1", u"Do2"] class Test(unittest.TestCase): """Test for SLDRPC SmartFactory generator. This class holds set of test cases for the SDLRPC SmartFactory generator. """ def test_gen_schema_params_fill(self): """Test feature that allows to create format specific PARAMS.
def populate_issue_list(self, gitlab_issue_list: list): for issue in gitlab_issue_list: newIssue = Issue(issue) self.__issue_list.append(newIssue)
val_2 = 100, /** * @brief val_3. */ val_3 }; } // E2 """ DESCRIPTION = [u"Description Line1", u"Description Line2"] DESIGN_DESCRIPTION = [u"Design Line1"] ISSUES = [ Issue(value=u"Issue1"), Issue(value=u"Issue2"), Issue(value=u"Issue3") ] TODOS = [u"Do1", u"Do2"] class Test(unittest.TestCase): """Test for SmartFactory base generator. This class holds set of test cases for the SmartFactory base generator. """ def test_gen_comment(self): """Test generation of the source code comments.
def create_issue(title, message): issue = Issue(title=title, description=message) issue.save()
def __issue_to_bson(issue: Issue): return { "_id": (issue.issue_id, issue.project_id) }.update(issue.to_dict())