|
Pierre-Yves Chibon |
b4a226 |
# -*- coding: utf-8 -*-
|
|
Pierre-Yves Chibon |
b4a226 |
|
|
Pierre-Yves Chibon |
b4a226 |
"""
|
|
Pierre-Yves Chibon |
b4a226 |
(c) 2017 - Copyright Red Hat Inc
|
|
Pierre-Yves Chibon |
b4a226 |
|
|
Pierre-Yves Chibon |
b4a226 |
Authors:
|
|
Pierre-Yves Chibon |
b4a226 |
Pierre-Yves Chibon <pingou@pingoured.fr></pingou@pingoured.fr>
|
|
Pierre-Yves Chibon |
b4a226 |
|
|
Pierre-Yves Chibon |
b4a226 |
"""
|
|
Pierre-Yves Chibon |
b4a226 |
|
|
Pierre-Yves Chibon |
b4a226 |
__requires__ = ['SQLAlchemy >= 0.8']
|
|
Pierre-Yves Chibon |
b4a226 |
import pkg_resources
|
|
Pierre-Yves Chibon |
b4a226 |
|
|
Pierre-Yves Chibon |
b4a226 |
import json
|
|
Pierre-Yves Chibon |
b4a226 |
import unittest
|
|
Pierre-Yves Chibon |
b4a226 |
import sys
|
|
Pierre-Yves Chibon |
b4a226 |
import os
|
|
Pierre-Yves Chibon |
b4a226 |
import uuid
|
|
Pierre-Yves Chibon |
b4a226 |
|
|
Pierre-Yves Chibon |
b4a226 |
|
|
Pierre-Yves Chibon |
b4a226 |
sys.path.insert(0, os.path.join(os.path.dirname(
|
|
Pierre-Yves Chibon |
b4a226 |
os.path.abspath(__file__)), '..'))
|
|
Pierre-Yves Chibon |
b4a226 |
|
|
Pierre-Yves Chibon |
b4a226 |
import pagure.lib
|
|
Pierre-Yves Chibon |
b4a226 |
import pagure.lib.model as model
|
|
Pierre-Yves Chibon |
b4a226 |
|
|
Pierre-Yves Chibon |
b4a226 |
import tests
|
|
Pierre-Yves Chibon |
b4a226 |
|
|
Pierre-Yves Chibon |
b4a226 |
|
|
Pierre-Yves Chibon |
b4a226 |
class DeleteProjectTests(tests.Modeltests):
|
|
Pierre-Yves Chibon |
b4a226 |
""" Tests for flask issues controller of pagure """
|
|
Pierre-Yves Chibon |
b4a226 |
|
|
Pierre-Yves Chibon |
b4a226 |
def setUp(self):
|
|
Pierre-Yves Chibon |
b4a226 |
""" Set up the environnment, run before every tests. """
|
|
Pierre-Yves Chibon |
b4a226 |
super(DeleteProjectTests, self).setUp()
|
|
Pierre-Yves Chibon |
b4a226 |
|
|
Pierre-Yves Chibon |
b4a226 |
pagure.APP.config['TESTING'] = True
|
|
Pierre-Yves Chibon |
b4a226 |
pagure.SESSION = self.session
|
|
Pierre-Yves Chibon |
b4a226 |
|
|
Pierre-Yves Chibon |
b4a226 |
def test_delete_project_with_group(self):
|
|
Pierre-Yves Chibon |
b4a226 |
""" Test the model when we delete a project with a group. """
|
|
Pierre-Yves Chibon |
b4a226 |
|
|
Pierre-Yves Chibon |
b4a226 |
# Create a project
|
|
Pierre-Yves Chibon |
b4a226 |
item = model.Project(
|
|
Pierre-Yves Chibon |
b4a226 |
user_id=1, # pingou
|
|
Pierre-Yves Chibon |
b4a226 |
name='test',
|
|
Pierre-Yves Chibon |
b4a226 |
description='test project #1',
|
|
Pierre-Yves Chibon |
b4a226 |
hook_token='aaabbbiii',
|
|
Pierre-Yves Chibon |
b4a226 |
)
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.add(item)
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.commit()
|
|
Pierre-Yves Chibon |
b4a226 |
|
|
Pierre-Yves Chibon |
b4a226 |
# Create a group
|
|
Pierre-Yves Chibon |
b4a226 |
grp = model.PagureGroup(
|
|
Pierre-Yves Chibon |
b4a226 |
group_name='testgrp',
|
|
Pierre-Yves Chibon |
b4a226 |
display_name='Test group',
|
|
Pierre-Yves Chibon |
b4a226 |
description=None,
|
|
Pierre-Yves Chibon |
b4a226 |
group_type='user',
|
|
Pierre-Yves Chibon |
b4a226 |
user_id=1, # pingou
|
|
Pierre-Yves Chibon |
b4a226 |
)
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.add(grp)
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.commit()
|
|
Pierre-Yves Chibon |
b4a226 |
|
|
Pierre-Yves Chibon |
b4a226 |
# Add group to project
|
|
Pierre-Yves Chibon |
b4a226 |
project_group = model.ProjectGroup(
|
|
Pierre-Yves Chibon |
b4a226 |
project_id=1,
|
|
Pierre-Yves Chibon |
b4a226 |
group_id=1,
|
|
Pierre-Yves Chibon |
b4a226 |
access='admin',
|
|
Pierre-Yves Chibon |
b4a226 |
)
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.add(project_group)
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.commit()
|
|
Pierre-Yves Chibon |
b4a226 |
|
|
Pierre-Yves Chibon |
b4a226 |
self.assertEqual(
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.query(model.Project).count(), 1)
|
|
Pierre-Yves Chibon |
b4a226 |
self.assertEqual(
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.query(model.ProjectGroup).count(), 1)
|
|
Pierre-Yves Chibon |
b4a226 |
|
|
Pierre-Yves Chibon |
b4a226 |
project = self.session.query(
|
|
Pierre-Yves Chibon |
b4a226 |
model.Project
|
|
Pierre-Yves Chibon |
b4a226 |
).filter(
|
|
Pierre-Yves Chibon |
b4a226 |
model.Project.id==1
|
|
Pierre-Yves Chibon |
b4a226 |
).one()
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.delete(project)
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.commit()
|
|
Pierre-Yves Chibon |
b4a226 |
|
|
Pierre-Yves Chibon |
b4a226 |
self.assertEqual(
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.query(model.Project).count(), 0)
|
|
Pierre-Yves Chibon |
b4a226 |
self.assertEqual(
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.query(model.ProjectGroup).count(), 0)
|
|
Pierre-Yves Chibon |
b4a226 |
|
|
Pierre-Yves Chibon |
b4a226 |
def test_delete_project_with_user(self):
|
|
Pierre-Yves Chibon |
b4a226 |
""" Test the model when we delete a project with users. """
|
|
Pierre-Yves Chibon |
b4a226 |
|
|
Pierre-Yves Chibon |
b4a226 |
# Create a project
|
|
Pierre-Yves Chibon |
b4a226 |
item = model.Project(
|
|
Pierre-Yves Chibon |
b4a226 |
user_id=1, # pingou
|
|
Pierre-Yves Chibon |
b4a226 |
name='test',
|
|
Pierre-Yves Chibon |
b4a226 |
description='test project #1',
|
|
Pierre-Yves Chibon |
b4a226 |
hook_token='aaabbbiii',
|
|
Pierre-Yves Chibon |
b4a226 |
)
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.add(item)
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.commit()
|
|
Pierre-Yves Chibon |
b4a226 |
|
|
Pierre-Yves Chibon |
b4a226 |
# Add user #2 to project
|
|
Pierre-Yves Chibon |
b4a226 |
project_user = model.ProjectUser(
|
|
Pierre-Yves Chibon |
b4a226 |
project_id=1,
|
|
Pierre-Yves Chibon |
b4a226 |
user_id=2,
|
|
Pierre-Yves Chibon |
b4a226 |
access='admin',
|
|
Pierre-Yves Chibon |
b4a226 |
)
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.add(project_user)
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.commit()
|
|
Pierre-Yves Chibon |
b4a226 |
|
|
Pierre-Yves Chibon |
b4a226 |
self.assertEqual(
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.query(model.Project).count(), 1)
|
|
Pierre-Yves Chibon |
b4a226 |
self.assertEqual(
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.query(model.ProjectUser).count(), 1)
|
|
Pierre-Yves Chibon |
b4a226 |
self.assertEqual(
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.query(model.User).count(), 2)
|
|
Pierre-Yves Chibon |
b4a226 |
|
|
Pierre-Yves Chibon |
b4a226 |
project = self.session.query(
|
|
Pierre-Yves Chibon |
b4a226 |
model.Project
|
|
Pierre-Yves Chibon |
b4a226 |
).filter(
|
|
Pierre-Yves Chibon |
b4a226 |
model.Project.id==1
|
|
Pierre-Yves Chibon |
b4a226 |
).one()
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.delete(project)
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.commit()
|
|
Pierre-Yves Chibon |
b4a226 |
|
|
Pierre-Yves Chibon |
b4a226 |
self.assertEqual(
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.query(model.Project).count(), 0)
|
|
Pierre-Yves Chibon |
b4a226 |
self.assertEqual(
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.query(model.ProjectUser).count(), 0)
|
|
Pierre-Yves Chibon |
b4a226 |
self.assertEqual(
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.query(model.User).count(), 2)
|
|
Pierre-Yves Chibon |
b4a226 |
|
|
Pierre-Yves Chibon |
b4a226 |
def test_delete_project_with_coloredtags(self):
|
|
Pierre-Yves Chibon |
b4a226 |
""" Test the model when we delete a project with Colored tags. """
|
|
Pierre-Yves Chibon |
b4a226 |
|
|
Pierre-Yves Chibon |
b4a226 |
# Create a project
|
|
Pierre-Yves Chibon |
b4a226 |
item = model.Project(
|
|
Pierre-Yves Chibon |
b4a226 |
user_id=1, # pingou
|
|
Pierre-Yves Chibon |
b4a226 |
name='test',
|
|
Pierre-Yves Chibon |
b4a226 |
description='test project #1',
|
|
Pierre-Yves Chibon |
b4a226 |
hook_token='aaabbbiii',
|
|
Pierre-Yves Chibon |
b4a226 |
)
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.add(item)
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.commit()
|
|
Pierre-Yves Chibon |
b4a226 |
|
|
Pierre-Yves Chibon |
b4a226 |
# Create two ColoredTags
|
|
Pierre-Yves Chibon |
b4a226 |
tagobj = model.TagColored(
|
|
Pierre-Yves Chibon |
b4a226 |
tag='Tag#1',
|
|
Pierre-Yves Chibon |
b4a226 |
project_id=1
|
|
Pierre-Yves Chibon |
b4a226 |
)
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.add(tagobj)
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.flush()
|
|
Pierre-Yves Chibon |
b4a226 |
|
|
Pierre-Yves Chibon |
b4a226 |
tagobj = model.TagColored(
|
|
Pierre-Yves Chibon |
b4a226 |
tag='Tag#2',
|
|
Pierre-Yves Chibon |
b4a226 |
project_id=1
|
|
Pierre-Yves Chibon |
b4a226 |
)
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.add(tagobj)
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.flush()
|
|
Pierre-Yves Chibon |
b4a226 |
|
|
Pierre-Yves Chibon |
b4a226 |
self.assertEqual(
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.query(model.Project).count(), 1)
|
|
Pierre-Yves Chibon |
b4a226 |
self.assertEqual(
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.query(model.TagColored).count(), 2)
|
|
Pierre-Yves Chibon |
b4a226 |
|
|
Pierre-Yves Chibon |
b4a226 |
project = self.session.query(
|
|
Pierre-Yves Chibon |
b4a226 |
model.Project
|
|
Pierre-Yves Chibon |
b4a226 |
).filter(
|
|
Pierre-Yves Chibon |
b4a226 |
model.Project.id==1
|
|
Pierre-Yves Chibon |
b4a226 |
).one()
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.delete(project)
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.commit()
|
|
Pierre-Yves Chibon |
b4a226 |
|
|
Pierre-Yves Chibon |
b4a226 |
self.assertEqual(
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.query(model.Project).count(), 0)
|
|
Pierre-Yves Chibon |
b4a226 |
self.assertEqual(
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.query(model.TagColored).count(), 0)
|
|
Pierre-Yves Chibon |
b4a226 |
|
|
Pierre-Yves Chibon |
b4a226 |
def test_delete_project_with_coloredtags_and_issues(self):
|
|
Pierre-Yves Chibon |
b4a226 |
""" Test the model when we delete a project with Colored tags and
|
|
Pierre-Yves Chibon |
b4a226 |
issues. """
|
|
Pierre-Yves Chibon |
b4a226 |
|
|
Pierre-Yves Chibon |
b4a226 |
# Create a project
|
|
Pierre-Yves Chibon |
b4a226 |
item = model.Project(
|
|
Pierre-Yves Chibon |
b4a226 |
user_id=1, # pingou
|
|
Pierre-Yves Chibon |
b4a226 |
name='test',
|
|
Pierre-Yves Chibon |
b4a226 |
description='test project #1',
|
|
Pierre-Yves Chibon |
b4a226 |
hook_token='aaabbbiii',
|
|
Pierre-Yves Chibon |
b4a226 |
)
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.add(item)
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.commit()
|
|
Pierre-Yves Chibon |
b4a226 |
|
|
Pierre-Yves Chibon |
b4a226 |
# Create two ColoredTags
|
|
Pierre-Yves Chibon |
b4a226 |
tagobj = model.TagColored(
|
|
Pierre-Yves Chibon |
b4a226 |
tag='Tag#1',
|
|
Pierre-Yves Chibon |
b4a226 |
project_id=1
|
|
Pierre-Yves Chibon |
b4a226 |
)
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.add(tagobj)
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.flush()
|
|
Pierre-Yves Chibon |
b4a226 |
|
|
Pierre-Yves Chibon |
b4a226 |
tagobj = model.TagColored(
|
|
Pierre-Yves Chibon |
b4a226 |
tag='Tag#2',
|
|
Pierre-Yves Chibon |
b4a226 |
project_id=1
|
|
Pierre-Yves Chibon |
b4a226 |
)
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.add(tagobj)
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.flush()
|
|
Pierre-Yves Chibon |
b4a226 |
|
|
Pierre-Yves Chibon |
b4a226 |
# Create issues
|
|
Pierre-Yves Chibon |
b4a226 |
issue = model.Issue(
|
|
Pierre-Yves Chibon |
b4a226 |
id=pagure.lib.get_next_id(self.session, 1),
|
|
Pierre-Yves Chibon |
b4a226 |
project_id=1,
|
|
Pierre-Yves Chibon |
b4a226 |
title='Issue #1',
|
|
Pierre-Yves Chibon |
b4a226 |
content='Description #1',
|
|
Pierre-Yves Chibon |
b4a226 |
user_id=1,
|
|
Pierre-Yves Chibon |
b4a226 |
uid=uuid.uuid4().hex,
|
|
Pierre-Yves Chibon |
b4a226 |
private=False,
|
|
Pierre-Yves Chibon |
b4a226 |
)
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.add(issue)
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.commit()
|
|
Pierre-Yves Chibon |
b4a226 |
|
|
Pierre-Yves Chibon |
b4a226 |
issue = model.Issue(
|
|
Pierre-Yves Chibon |
b4a226 |
id=pagure.lib.get_next_id(self.session, 1),
|
|
Pierre-Yves Chibon |
b4a226 |
project_id=1,
|
|
Pierre-Yves Chibon |
b4a226 |
title='Issue #2',
|
|
Pierre-Yves Chibon |
b4a226 |
content='Description #2',
|
|
Pierre-Yves Chibon |
b4a226 |
user_id=1,
|
|
Pierre-Yves Chibon |
b4a226 |
uid=uuid.uuid4().hex,
|
|
Pierre-Yves Chibon |
b4a226 |
private=False,
|
|
Pierre-Yves Chibon |
b4a226 |
)
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.add(issue)
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.commit()
|
|
Pierre-Yves Chibon |
b4a226 |
|
|
Pierre-Yves Chibon |
b4a226 |
self.assertEqual(
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.query(model.Project).count(), 1)
|
|
Pierre-Yves Chibon |
b4a226 |
self.assertEqual(
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.query(model.TagColored).count(), 2)
|
|
Pierre-Yves Chibon |
b4a226 |
self.assertEqual(
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.query(model.Issue).count(), 2)
|
|
Pierre-Yves Chibon |
b4a226 |
|
|
Pierre-Yves Chibon |
b4a226 |
project = self.session.query(
|
|
Pierre-Yves Chibon |
b4a226 |
model.Project
|
|
Pierre-Yves Chibon |
b4a226 |
).filter(
|
|
Pierre-Yves Chibon |
b4a226 |
model.Project.id==1
|
|
Pierre-Yves Chibon |
b4a226 |
).one()
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.delete(project)
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.commit()
|
|
Pierre-Yves Chibon |
b4a226 |
|
|
Pierre-Yves Chibon |
b4a226 |
self.assertEqual(
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.query(model.Project).count(), 0)
|
|
Pierre-Yves Chibon |
b4a226 |
self.assertEqual(
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.query(model.TagColored).count(), 0)
|
|
Pierre-Yves Chibon |
b4a226 |
self.assertEqual(
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.query(model.Issue).count(), 0)
|
|
Pierre-Yves Chibon |
b4a226 |
|
|
Pierre-Yves Chibon |
b4a226 |
def test_delete_project_with_coloredtags_and_tagged_issues(self):
|
|
Pierre-Yves Chibon |
b4a226 |
""" Test the model when we delete a project with Colored tags and
|
|
Pierre-Yves Chibon |
b4a226 |
tagged issues. """
|
|
Pierre-Yves Chibon |
b4a226 |
|
|
Pierre-Yves Chibon |
b4a226 |
# Create a project
|
|
Pierre-Yves Chibon |
b4a226 |
item = model.Project(
|
|
Pierre-Yves Chibon |
b4a226 |
user_id=1, # pingou
|
|
Pierre-Yves Chibon |
b4a226 |
name='test',
|
|
Pierre-Yves Chibon |
b4a226 |
description='test project #1',
|
|
Pierre-Yves Chibon |
b4a226 |
hook_token='aaabbbiii',
|
|
Pierre-Yves Chibon |
b4a226 |
)
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.add(item)
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.commit()
|
|
Pierre-Yves Chibon |
b4a226 |
|
|
Pierre-Yves Chibon |
b4a226 |
# Create two ColoredTags
|
|
Pierre-Yves Chibon |
b4a226 |
tagobj = model.TagColored(
|
|
Pierre-Yves Chibon |
b4a226 |
tag='Tag#1',
|
|
Pierre-Yves Chibon |
b4a226 |
project_id=1
|
|
Pierre-Yves Chibon |
b4a226 |
)
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.add(tagobj)
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.flush()
|
|
Pierre-Yves Chibon |
b4a226 |
|
|
Pierre-Yves Chibon |
b4a226 |
tagobj = model.TagColored(
|
|
Pierre-Yves Chibon |
b4a226 |
tag='Tag#2',
|
|
Pierre-Yves Chibon |
b4a226 |
project_id=1
|
|
Pierre-Yves Chibon |
b4a226 |
)
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.add(tagobj)
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.flush()
|
|
Pierre-Yves Chibon |
b4a226 |
|
|
Pierre-Yves Chibon |
b4a226 |
# Create issues
|
|
Pierre-Yves Chibon |
b4a226 |
issue = model.Issue(
|
|
Pierre-Yves Chibon |
b4a226 |
id=pagure.lib.get_next_id(self.session, 1),
|
|
Pierre-Yves Chibon |
b4a226 |
project_id=1,
|
|
Pierre-Yves Chibon |
b4a226 |
title='Issue #1',
|
|
Pierre-Yves Chibon |
b4a226 |
content='Description #1',
|
|
Pierre-Yves Chibon |
b4a226 |
user_id=1,
|
|
Pierre-Yves Chibon |
b4a226 |
uid='Issue#1',
|
|
Pierre-Yves Chibon |
b4a226 |
private=False,
|
|
Pierre-Yves Chibon |
b4a226 |
)
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.add(issue)
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.commit()
|
|
Pierre-Yves Chibon |
b4a226 |
|
|
Pierre-Yves Chibon |
b4a226 |
issue = model.Issue(
|
|
Pierre-Yves Chibon |
b4a226 |
id=pagure.lib.get_next_id(self.session, 1),
|
|
Pierre-Yves Chibon |
b4a226 |
project_id=1,
|
|
Pierre-Yves Chibon |
b4a226 |
title='Issue #2',
|
|
Pierre-Yves Chibon |
b4a226 |
content='Description #2',
|
|
Pierre-Yves Chibon |
b4a226 |
user_id=1,
|
|
Pierre-Yves Chibon |
b4a226 |
uid='Issue#2',
|
|
Pierre-Yves Chibon |
b4a226 |
private=False,
|
|
Pierre-Yves Chibon |
b4a226 |
)
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.add(issue)
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.commit()
|
|
Pierre-Yves Chibon |
b4a226 |
|
|
Pierre-Yves Chibon |
b4a226 |
# Tag the issue
|
|
Pierre-Yves Chibon |
b4a226 |
tagissue = model.TagIssueColored(
|
|
Pierre-Yves Chibon |
b4a226 |
issue_uid='Issue#1',
|
|
Pierre-Yves Chibon |
b4a226 |
tag_id=1
|
|
Pierre-Yves Chibon |
b4a226 |
)
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.add(tagissue)
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.commit()
|
|
Pierre-Yves Chibon |
b4a226 |
|
|
Pierre-Yves Chibon |
b4a226 |
tagissue = model.TagIssueColored(
|
|
Pierre-Yves Chibon |
b4a226 |
issue_uid='Issue#2',
|
|
Pierre-Yves Chibon |
b4a226 |
tag_id=2
|
|
Pierre-Yves Chibon |
b4a226 |
)
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.add(tagissue)
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.commit()
|
|
Pierre-Yves Chibon |
b4a226 |
|
|
Pierre-Yves Chibon |
b4a226 |
self.assertEqual(
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.query(model.Project).count(), 1)
|
|
Pierre-Yves Chibon |
b4a226 |
self.assertEqual(
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.query(model.TagColored).count(), 2)
|
|
Pierre-Yves Chibon |
b4a226 |
self.assertEqual(
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.query(model.Issue).count(), 2)
|
|
Pierre-Yves Chibon |
b4a226 |
|
|
Pierre-Yves Chibon |
b4a226 |
project = self.session.query(
|
|
Pierre-Yves Chibon |
b4a226 |
model.Project
|
|
Pierre-Yves Chibon |
b4a226 |
).filter(
|
|
Pierre-Yves Chibon |
b4a226 |
model.Project.id==1
|
|
Pierre-Yves Chibon |
b4a226 |
).one()
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.delete(project)
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.commit()
|
|
Pierre-Yves Chibon |
b4a226 |
|
|
Pierre-Yves Chibon |
b4a226 |
self.assertEqual(
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.query(model.Project).count(), 0)
|
|
Pierre-Yves Chibon |
b4a226 |
self.assertEqual(
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.query(model.TagColored).count(), 0)
|
|
Pierre-Yves Chibon |
b4a226 |
self.assertEqual(
|
|
Pierre-Yves Chibon |
b4a226 |
self.session.query(model.Issue).count(), 0)
|
|
Pierre-Yves Chibon |
b4a226 |
|
|
Pierre-Yves Chibon |
b4a226 |
if __name__ == '__main__':
|
|
Pierre-Yves Chibon |
b4a226 |
unittest.main(verbosity=2)
|