Merge branch 'develop' into fix-link-selector

This commit is contained in:
Suraj Shetty 2021-08-31 11:24:53 +05:30 committed by GitHub
commit 86af25a287
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 39 additions and 1 deletions

View file

@ -193,6 +193,16 @@ class CustomizeForm(Document):
if prop == "fieldtype":
self.validate_fieldtype_change(df, meta_df[0].get(prop), df.get(prop))
elif prop == "length":
old_value_length = cint(meta_df[0].get(prop))
new_value_length = cint(df.get(prop))
if new_value_length and (old_value_length > new_value_length):
self.check_length_for_fieldtypes.append({'df': df, 'old_value': meta_df[0].get(prop)})
self.validate_fieldtype_length()
else:
self.flags.update_db = True
elif prop == "allow_on_submit" and df.get(prop):
if not frappe.db.get_value("DocField",
{"parent": self.doc_type, "fieldname": df.fieldname}, "allow_on_submit"):

View file

@ -188,6 +188,26 @@ class TestCustomizeForm(unittest.TestCase):
def test_core_doctype_customization(self):
self.assertRaises(frappe.ValidationError, self.get_customize_form, 'User')
def test_save_customization_length_field_property(self):
# Using Notification Log doctype as it doesn't have any other custom fields
d = self.get_customize_form("Notification Log")
document_name = d.get("fields", {"fieldname": "document_name"})[0]
document_name.length = 255
d.run_method("save_customization")
self.assertEqual(frappe.db.get_value("Property Setter",
{"doc_type": "Notification Log", "property": "length", "field_name": "document_name"}, "value"), '255')
self.assertTrue(d.flags.update_db)
length = frappe.db.sql("""SELECT character_maximum_length
FROM information_schema.columns
WHERE table_name = 'tabNotification Log'
AND column_name = 'document_name'""")[0][0]
self.assertEqual(length, 255)
def test_custom_link(self):
try:
# create a dummy doctype linked to Event

View file

@ -3,12 +3,14 @@ import socket
import time
from uuid import uuid4
from collections import defaultdict
from typing import List
import redis
from typing import List
from redis.exceptions import BusyLoadingError, ConnectionError
from rq import Connection, Queue, Worker
from rq.logutils import setup_loghandlers
from tenacity import retry, retry_if_exception_type, stop_after_attempt, wait_fixed
import frappe
from frappe import _
@ -233,6 +235,11 @@ def validate_queue(queue, default_queue_list=None):
if queue not in default_queue_list:
frappe.throw(_("Queue should be one of {0}").format(', '.join(default_queue_list)))
@retry(
retry=retry_if_exception_type(BusyLoadingError) | retry_if_exception_type(ConnectionError),
stop=stop_after_attempt(10),
wait=wait_fixed(1)
)
def get_redis_conn(username=None, password=None):
if not hasattr(frappe.local, 'conf'):
raise Exception('You need to call frappe.init')

View file

@ -77,3 +77,4 @@ Whoosh~=2.7.4
wrapt~=1.12.1
xlrd~=2.0.1
zxcvbn-python~=4.4.24
tenacity~=8.0.1