843 |
843 |
assert formdef.data_class().get(formdata.id).evolution[0].who is None
|
844 |
844 |
|
845 |
845 |
|
846 |
|
def test_remove(pub):
|
|
846 |
def test_remove(two_pubs):
|
847 |
847 |
formdef = FormDef()
|
848 |
848 |
formdef.name = 'baz'
|
849 |
849 |
formdef.store()
|
850 |
850 |
|
|
851 |
formdef.data_class().wipe()
|
851 |
852 |
formdata = formdef.data_class()()
|
852 |
853 |
formdata.store()
|
853 |
854 |
|
854 |
855 |
item = RemoveWorkflowStatusItem()
|
855 |
|
assert formdef.data_class().has_key(formdata.id)
|
856 |
|
assert item.perform(formdata) == 'http://example.net'
|
857 |
|
assert not formdef.data_class().has_key(formdata.id)
|
|
856 |
assert formdef.data_class().count() == 1
|
|
857 |
with pytest.raises(AbortActionException) as e:
|
|
858 |
item.perform(formdata)
|
|
859 |
assert e.url == 'http://example.net'
|
|
860 |
assert formdef.data_class().count() == 0
|
858 |
861 |
|
859 |
862 |
formdata = formdef.data_class()()
|
860 |
863 |
formdata.store()
|
861 |
864 |
|
862 |
865 |
item = RemoveWorkflowStatusItem()
|
863 |
|
req = pub.get_request()
|
|
866 |
req = two_pubs.get_request()
|
864 |
867 |
req.response.filter['in_backoffice'] = True
|
865 |
|
assert formdef.data_class().has_key(formdata.id)
|
866 |
|
assert item.perform(formdata) == '..'
|
867 |
|
assert not formdef.data_class().has_key(formdata.id)
|
|
868 |
assert formdef.data_class().count() == 1
|
|
869 |
with pytest.raises(AbortActionException) as e:
|
|
870 |
item.perform(formdata)
|
|
871 |
assert e.url == '..'
|
|
872 |
assert formdef.data_class().count() == 0
|
868 |
873 |
req.response.filter = {}
|
869 |
874 |
assert req.session.message
|
870 |
875 |
|
871 |
876 |
|
|
877 |
def test_stop_on_remove(two_pubs, emails):
|
|
878 |
workflow = Workflow(name='stop-on-remove')
|
|
879 |
st1 = workflow.add_status('Status1', 'st1')
|
|
880 |
|
|
881 |
# sendmail + remove + sendmail
|
|
882 |
mail1 = SendmailWorkflowStatusItem()
|
|
883 |
mail1.to = ['bar@localhost']
|
|
884 |
mail1.subject = 'Foobar'
|
|
885 |
mail1.body = 'email body'
|
|
886 |
st1.items.append(mail1)
|
|
887 |
mail1.parent = st1
|
|
888 |
remove = RemoveWorkflowStatusItem()
|
|
889 |
st1.items.append(remove)
|
|
890 |
remove.parent = st1
|
|
891 |
mail2 = SendmailWorkflowStatusItem()
|
|
892 |
mail2.to = ['bar@localhost']
|
|
893 |
mail2.subject = 'Foobar2'
|
|
894 |
mail2.body = 'email body 2'
|
|
895 |
st1.items.append(mail2)
|
|
896 |
mail2.parent = st1
|
|
897 |
|
|
898 |
workflow.store()
|
|
899 |
|
|
900 |
formdef = FormDef()
|
|
901 |
formdef.name = 'baz%s' % id(two_pubs)
|
|
902 |
formdef.fields = []
|
|
903 |
formdef.workflow_id = workflow.id
|
|
904 |
assert formdef.get_workflow().id == workflow.id
|
|
905 |
formdef.store()
|
|
906 |
|
|
907 |
formdef.data_class().wipe()
|
|
908 |
emails.empty()
|
|
909 |
assert formdef.data_class().count() == 0
|
|
910 |
assert emails.count() == 0
|
|
911 |
|
|
912 |
formdata = formdef.data_class()()
|
|
913 |
formdata.just_created()
|
|
914 |
formdata.store()
|
|
915 |
url = perform_items(st1.items, formdata)
|
|
916 |
get_response().process_after_jobs()
|
|
917 |
|
|
918 |
# formdata is removed, no email were sent
|
|
919 |
assert formdef.data_class().count() == 0
|
|
920 |
assert emails.count() == 1
|
|
921 |
assert url == 'http://example.net'
|
|
922 |
|
|
923 |
|
872 |
924 |
def test_register_comment(pub):
|
873 |
925 |
pub.substitutions.feed(MockSubstitutionVariables())
|
874 |
926 |
|