fix(tests): cleanup

This commit is contained in:
Rushabh Mehta 2020-08-13 13:02:30 +05:30
parent b4b620e738
commit b09beb9147
8 changed files with 44 additions and 27 deletions

View file

@ -38,6 +38,10 @@ def evaluate_milestone(doc, event):
return
# track milestones related to this doctype
for d in frappe.cache_manager.get_doctype_map('Milestone Tracker', doc.doctype,
dict(document_type = doc.doctype, disabled=0)):
frappe.get_doc('Milestone Tracker', d.name).apply(doc)
for d in get_milestone_trackers(doc.doctype):
frappe.get_doc('Milestone Tracker', d.get('name')).apply(doc)
def get_milestone_trackers(doctype):
return frappe.cache_manager.get_doctype_map('Milestone Tracker', doctype,
dict(document_type = doctype, disabled=0))

View file

@ -4,11 +4,17 @@
from __future__ import unicode_literals
import frappe
import frappe.cache_manager
import unittest
from .milestone_tracker import get_milestone_trackers
class TestMilestoneTracker(unittest.TestCase):
def test_milestone(self):
frappe.db.sql('delete from `tabMilestone Tracker`')
frappe.cache().delete_key('milestone_tracker_map')
frappe.get_doc(dict(
doctype = 'Milestone Tracker',
document_type = 'ToDo',
@ -17,7 +23,8 @@ class TestMilestoneTracker(unittest.TestCase):
todo = frappe.get_doc(dict(
doctype = 'ToDo',
description = 'test milestone'
description = 'test milestone',
status = 'Open'
)).insert()
milestones = frappe.get_all('Milestone',

View file

@ -194,7 +194,7 @@ class Database(object):
def log_query(self, query, values, debug, explain):
# for debugging in tests
if frappe.cache().get_value('flag_print_sql'):
if frappe.conf.get('allow_tests') and frappe.cache().get_value('flag_print_sql'):
print(self.mogrify(query, values))
# debug

View file

@ -19,7 +19,7 @@ class EventUpdateLog(Document):
enqueue_after_commit=True)
def notify_consumers(doc, event):
'''called via triggers'''
'''called via hooks'''
# make event update log for doctypes having event consumers
if frappe.flags.in_install or frappe.flags.in_migrate:
return
@ -28,14 +28,19 @@ def notify_consumers(doc, event):
if consumers:
doc_before_save = doc.get_doc_before_save()
if doc.flags.update_log_for_doc_creation:
make_event_update_log(doc, update_type='Create')
doc.flags.update_log_for_doc_creation = False
if event=='after_insert':
doc.flags.event_update_log = make_event_update_log(doc, update_type='Create')
elif event=='on_trash':
make_event_update_log(doc, update_type='Delete')
else:
diff = get_update(doc_before_save, doc)
if diff:
doc.diff = diff
make_event_update_log(doc, update_type='Update')
# on_update
# called after saving
if not doc.flags.event_update_log: # if not already inserted
diff = get_update(doc_before_save, doc)
if diff:
doc.diff = diff
make_event_update_log(doc, update_type='Update')
def check_doctype_has_consumers(doctype):
"""Check if doctype has event consumers for event streaming"""
@ -88,7 +93,7 @@ def make_event_update_log(doc, update_type):
data = frappe.as_json(doc) if not doc.get('diff') else frappe.as_json(doc.diff)
else:
data = None
log_doc = frappe.get_doc({
return frappe.get_doc({
'doctype': 'Event Update Log',
'update_type': update_type,
'ref_doctype': doc.doctype,

View file

@ -127,6 +127,9 @@ standard_queries = {
doc_events = {
"*": {
"after_insert": [
"frappe.event_streaming.doctype.event_update_log.event_update_log.notify_consumers"
],
"on_update": [
"frappe.desk.notifications.clear_doctype_notifications",
"frappe.core.doctype.activity_log.feed.update_feed",
@ -142,7 +145,8 @@ doc_events = {
],
"on_trash": [
"frappe.desk.notifications.clear_doctype_notifications",
"frappe.workflow.doctype.workflow_action.workflow_action.process_workflow_actions"
"frappe.workflow.doctype.workflow_action.workflow_action.process_workflow_actions",
"frappe.event_streaming.doctype.event_update_log.event_update_log.notify_consumers"
],
"on_change": [
"frappe.social.doctype.energy_point_rule.energy_point_rule.process_energy_points"

View file

@ -18,7 +18,6 @@ from frappe.model.naming import revert_series_if_last
from frappe.utils.global_search import delete_for_document
from frappe.desk.doctype.tag.tag import delete_tags_for_document
from frappe.exceptions import FileNotFoundError
from frappe.model.document import make_event_update_log, check_doctype_has_consumers
doctypes_to_skip = ("Communication", "ToDo", "DocShare", "Email Unsubscribe", "Activity Log", "File",
"Version", "Document Follow", "Comment" , "View Log", "Tag Link", "Notification Log", "Email Queue")
@ -121,10 +120,6 @@ def delete_doc(doctype=None, name=None, force=0, ignore_doctypes=None, for_reloa
# delete tag link entry
delete_tags_for_document(doc)
# update log if doctype has event consumers
if not frappe.flags.in_install and not frappe.flags.in_migrate and check_doctype_has_consumers(doc.doctype):
make_event_update_log(doc, update_type='Delete')
if doc and not for_reload:
add_to_deleted_document(doc)
if not frappe.flags.in_patch:

View file

@ -6,6 +6,7 @@ from __future__ import unicode_literals
import frappe
from frappe import _
import frappe.cache_manager
from frappe.model import log_types
from frappe.model.document import Document
from frappe.social.doctype.energy_point_settings.energy_point_settings import is_energy_point_enabled
from frappe.social.doctype.energy_point_log.energy_point_log import \
@ -85,7 +86,8 @@ def process_energy_points(doc, state):
or frappe.flags.in_install
or frappe.flags.in_migrate
or frappe.flags.in_import
or frappe.flags.in_setup_wizard):
or frappe.flags.in_setup_wizard
or doc.doctype in log_types):
return
if not is_energy_point_enabled():

View file

@ -13,17 +13,15 @@ class TestWorkflow(unittest.TestCase):
@classmethod
def setUpClass(cls):
make_test_records("User")
frappe.print_sql(True)
@classmethod
def tearDownClass(cls):
frappe.print_sql(False)
def setUp(self):
if not getattr(self, 'workflow', None):
self.workflow = create_todo_workflow()
frappe.set_user('Administrator')
def tearDown(self):
self.workflow.db_set('is_active', 0)
def test_default_condition(self):
'''test default condition is set'''
todo = create_new_todo()
@ -128,7 +126,9 @@ class TestWorkflow(unittest.TestCase):
def create_todo_workflow():
if frappe.db.exists('Workflow', 'Test ToDo'):
return frappe.get_doc('Workflow', 'Test ToDo').save(ignore_permissions=True)
workflow = frappe.get_doc('Workflow', 'Test ToDo').save(ignore_permissions=True)
workflow.db_set('is_active', 1)
return workflow
else:
frappe.get_doc(dict(doctype='Role',
role_name='Test Approver')).insert(ignore_if_duplicate=True)