From da62dc13d97578590c12f71271cf96c017bc4893 Mon Sep 17 00:00:00 2001 From: kk Date: Mon, 9 Sep 2019 16:40:37 +0300 Subject: [PATCH 1/4] move lib/prettyjson to core/prettyjson. --- bi/models/dashboardlayout.py | 2 +- cm/models/confdbquery.py | 2 +- cm/models/errortype.py | 2 +- {lib => core}/prettyjson.py | 0 dev/models/quiz.py | 2 +- dev/models/spec.py | 2 +- fm/models/alarmseverity.py | 2 +- fm/models/cloneclassificationrule.py | 2 +- fm/models/enumeration.py | 2 +- fm/models/mibalias.py | 2 +- fm/models/mibpreference.py | 2 +- fm/models/oidalias.py | 2 +- fm/models/syntaxalias.py | 2 +- gis/models/layer.py | 2 +- inv/models/capability.py | 2 +- inv/models/connectionrule.py | 2 +- inv/models/connectiontype.py | 2 +- inv/models/firmware.py | 2 +- inv/models/objectmodel.py | 2 +- inv/models/platform.py | 2 +- inv/models/technology.py | 2 +- inv/models/vendor.py | 2 +- pm/models/metricscope.py | 2 +- pm/models/metrictype.py | 2 +- sa/models/action.py | 2 +- sa/models/actioncommands.py | 2 +- sa/models/profile.py | 2 +- sa/models/profilecheckrule.py | 2 +- services/web/apps/inv/connectionrule/views.py | 4 +-- services/web/apps/inv/objectmodel/views.py | 4 +-- tests/test_prettyjson.py | 25 +++++++++++++++++++ 31 files changed, 56 insertions(+), 31 deletions(-) rename {lib => core}/prettyjson.py (100%) create mode 100644 tests/test_prettyjson.py diff --git a/bi/models/dashboardlayout.py b/bi/models/dashboardlayout.py index 891086804b..84edea8a1a 100644 --- a/bi/models/dashboardlayout.py +++ b/bi/models/dashboardlayout.py @@ -12,7 +12,7 @@ from mongoengine.document import Document, EmbeddedDocument from mongoengine.fields import StringField, UUIDField, IntField, ListField, EmbeddedDocumentField # NOC modules -from noc.lib.prettyjson import to_json +from noc.core.prettyjson import to_json @six.python_2_unicode_compatible diff --git a/cm/models/confdbquery.py b/cm/models/confdbquery.py index 4a37a45f5b..61f3740304 100644 --- a/cm/models/confdbquery.py +++ b/cm/models/confdbquery.py @@ -24,7 +24,7 @@ import six import cachetools # NOC modules -from noc.lib.prettyjson import to_json +from noc.core.prettyjson import to_json from noc.lib.text import quote_safe_path from noc.core.model.decorator import on_delete_check from noc.sa.interfaces.base import StringParameter, IntParameter, BooleanParameter diff --git a/cm/models/errortype.py b/cm/models/errortype.py index b0f98ed767..bab6b2469e 100644 --- a/cm/models/errortype.py +++ b/cm/models/errortype.py @@ -15,7 +15,7 @@ from mongoengine.document import Document from mongoengine.fields import StringField, UUIDField # NOC modules -from noc.lib.prettyjson import to_json +from noc.core.prettyjson import to_json from noc.lib.text import quote_safe_path diff --git a/lib/prettyjson.py b/core/prettyjson.py similarity index 100% rename from lib/prettyjson.py rename to core/prettyjson.py diff --git a/dev/models/quiz.py b/dev/models/quiz.py index e3d0b27c22..b5e382db86 100644 --- a/dev/models/quiz.py +++ b/dev/models/quiz.py @@ -24,7 +24,7 @@ from mongoengine.fields import ( import cachetools # NOC modules -from noc.lib.prettyjson import to_json +from noc.core.prettyjson import to_json from noc.lib.text import quote_safe_path from noc.core.model.decorator import on_delete_check diff --git a/dev/models/spec.py b/dev/models/spec.py index 3525d29ac7..c191aa49c0 100644 --- a/dev/models/spec.py +++ b/dev/models/spec.py @@ -26,7 +26,7 @@ from mongoengine.fields import ( import cachetools # NOC modules -from noc.lib.prettyjson import to_json +from noc.core.prettyjson import to_json from noc.lib.text import quote_safe_path from noc.core.mongo.fields import PlainReferenceField from noc.sa.models.profile import Profile diff --git a/fm/models/alarmseverity.py b/fm/models/alarmseverity.py index e5a989a818..d6bd20c838 100644 --- a/fm/models/alarmseverity.py +++ b/fm/models/alarmseverity.py @@ -21,7 +21,7 @@ import cachetools from noc.main.models.style import Style from noc.core.mongo.fields import ForeignKeyField from noc.lib.text import quote_safe_path -from noc.lib.prettyjson import to_json +from core.prettyjson import to_json from noc.core.model.decorator import on_delete_check id_lock = Lock() diff --git a/fm/models/cloneclassificationrule.py b/fm/models/cloneclassificationrule.py index 782329d935..dc773e7ede 100644 --- a/fm/models/cloneclassificationrule.py +++ b/fm/models/cloneclassificationrule.py @@ -16,7 +16,7 @@ from mongoengine import fields # NOC modules from noc.lib.text import quote_safe_path -from noc.lib.prettyjson import to_json +from noc.core.prettyjson import to_json @six.python_2_unicode_compatible diff --git a/fm/models/enumeration.py b/fm/models/enumeration.py index 247e30c4e0..7fe93c2854 100644 --- a/fm/models/enumeration.py +++ b/fm/models/enumeration.py @@ -13,7 +13,7 @@ from mongoengine.fields import StringField, DictField, UUIDField # Python modules from noc.lib.text import quote_safe_path -from noc.lib.prettyjson import to_json +from noc.core.prettyjson import to_json @six.python_2_unicode_compatible diff --git a/fm/models/mibalias.py b/fm/models/mibalias.py index 6d4496408f..de335ace37 100644 --- a/fm/models/mibalias.py +++ b/fm/models/mibalias.py @@ -12,7 +12,7 @@ from mongoengine.document import Document from mongoengine.fields import StringField, UUIDField # NOC modules -from noc.lib.prettyjson import to_json +from noc.core.prettyjson import to_json @six.python_2_unicode_compatible diff --git a/fm/models/mibpreference.py b/fm/models/mibpreference.py index d636ece4db..2a83107f22 100644 --- a/fm/models/mibpreference.py +++ b/fm/models/mibpreference.py @@ -12,7 +12,7 @@ from mongoengine.document import Document from mongoengine.fields import StringField, UUIDField, IntField # NOC modules -from noc.lib.prettyjson import to_json +from noc.core.prettyjson import to_json @six.python_2_unicode_compatible diff --git a/fm/models/oidalias.py b/fm/models/oidalias.py index 69d5f284df..43d2c0181b 100644 --- a/fm/models/oidalias.py +++ b/fm/models/oidalias.py @@ -12,7 +12,7 @@ from mongoengine.document import Document from mongoengine.fields import StringField, UUIDField # NOC modules -from noc.lib.prettyjson import to_json +from noc.core.prettyjson import to_json @six.python_2_unicode_compatible diff --git a/fm/models/syntaxalias.py b/fm/models/syntaxalias.py index c59c83760e..ef108d6623 100644 --- a/fm/models/syntaxalias.py +++ b/fm/models/syntaxalias.py @@ -12,7 +12,7 @@ from mongoengine.document import Document from mongoengine.fields import StringField, UUIDField, DictField # NOC modules -from noc.lib.prettyjson import to_json +from noc.core.prettyjson import to_json @six.python_2_unicode_compatible diff --git a/gis/models/layer.py b/gis/models/layer.py index 23d32a421c..9a9a3f91d2 100644 --- a/gis/models/layer.py +++ b/gis/models/layer.py @@ -18,7 +18,7 @@ from mongoengine.fields import StringField, UUIDField, IntField, BooleanField import cachetools # NOC modules -from noc.lib.prettyjson import to_json +from noc.core.prettyjson import to_json from noc.lib.text import quote_safe_path from noc.core.model.decorator import on_delete_check diff --git a/inv/models/capability.py b/inv/models/capability.py index bfc9349b75..71563e7188 100644 --- a/inv/models/capability.py +++ b/inv/models/capability.py @@ -19,7 +19,7 @@ import cachetools # NOC modules from noc.main.models.doccategory import category -from noc.lib.prettyjson import to_json +from core.prettyjson import to_json from noc.lib.text import quote_safe_path from noc.core.model.decorator import on_delete_check diff --git a/inv/models/connectionrule.py b/inv/models/connectionrule.py index 64a0548a41..98398b5318 100644 --- a/inv/models/connectionrule.py +++ b/inv/models/connectionrule.py @@ -15,7 +15,7 @@ from mongoengine.document import Document, EmbeddedDocument from mongoengine.fields import StringField, UUIDField, ListField, EmbeddedDocumentField # NOC modules -from noc.lib.prettyjson import to_json +from noc.core.prettyjson import to_json from noc.lib.text import quote_safe_path from noc.core.model.decorator import on_delete_check diff --git a/inv/models/connectiontype.py b/inv/models/connectiontype.py index 19f9564afa..ef22029295 100644 --- a/inv/models/connectiontype.py +++ b/inv/models/connectiontype.py @@ -23,7 +23,7 @@ from mongoengine.fields import ( # NOC modules from noc.core.mongo.fields import PlainReferenceField -from noc.lib.prettyjson import to_json +from noc.core.prettyjson import to_json from noc.lib.text import quote_safe_path from noc.main.models.doccategory import category from noc.core.model.decorator import on_delete_check diff --git a/inv/models/firmware.py b/inv/models/firmware.py index 02458c97fc..d426f299e0 100644 --- a/inv/models/firmware.py +++ b/inv/models/firmware.py @@ -25,7 +25,7 @@ from .vendor import Vendor from noc.sa.models.profile import Profile from noc.core.mongo.fields import PlainReferenceField from noc.core.bi.decorator import bi_sync -from noc.lib.prettyjson import to_json +from noc.core.prettyjson import to_json from noc.core.model.decorator import on_delete_check id_lock = threading.Lock() diff --git a/inv/models/objectmodel.py b/inv/models/objectmodel.py index e49998d0c6..951345c000 100644 --- a/inv/models/objectmodel.py +++ b/inv/models/objectmodel.py @@ -33,7 +33,7 @@ from .unknownmodel import UnknownModel from .vendor import Vendor from noc.main.models.doccategory import category from noc.core.mongo.fields import PlainReferenceField -from noc.lib.prettyjson import to_json +from noc.core.prettyjson import to_json from noc.lib.text import quote_safe_path from noc.core.model.decorator import on_delete_check, on_save diff --git a/inv/models/platform.py b/inv/models/platform.py index 36e9e34b8d..6cc45caaf1 100644 --- a/inv/models/platform.py +++ b/inv/models/platform.py @@ -27,7 +27,7 @@ from bson.int64 import Int64 from noc.core.mongo.fields import PlainReferenceField, DateField from noc.core.model.decorator import on_delete_check from noc.core.bi.decorator import bi_sync, new_bi_id -from noc.lib.prettyjson import to_json +from noc.core.prettyjson import to_json from noc.models import get_model from .vendor import Vendor diff --git a/inv/models/technology.py b/inv/models/technology.py index 9210dcf28b..5afedb1f46 100644 --- a/inv/models/technology.py +++ b/inv/models/technology.py @@ -20,7 +20,7 @@ import cachetools # NOC modules from noc.core.model.decorator import on_delete_check from noc.core.bi.decorator import bi_sync -from noc.lib.prettyjson import to_json +from noc.core.prettyjson import to_json from noc.lib.text import quote_safe_path id_lock = threading.Lock() diff --git a/inv/models/vendor.py b/inv/models/vendor.py index ddb630c2fc..c7bfdee4fa 100644 --- a/inv/models/vendor.py +++ b/inv/models/vendor.py @@ -20,7 +20,7 @@ import cachetools import six # NOC modules -from noc.lib.prettyjson import to_json +from noc.core.prettyjson import to_json from noc.core.model.decorator import on_delete_check, on_save from noc.core.bi.decorator import bi_sync diff --git a/pm/models/metricscope.py b/pm/models/metricscope.py index ffc9e509f1..da293ecc67 100644 --- a/pm/models/metricscope.py +++ b/pm/models/metricscope.py @@ -25,7 +25,7 @@ import cachetools # NOC Modules from noc.config import config -from noc.lib.prettyjson import to_json +from noc.core.prettyjson import to_json from noc.core.model.decorator import on_delete_check id_lock = Lock() diff --git a/pm/models/metrictype.py b/pm/models/metrictype.py index 59719caea0..56519ed09d 100644 --- a/pm/models/metrictype.py +++ b/pm/models/metrictype.py @@ -24,7 +24,7 @@ from noc.inv.models.capability import Capability from noc.core.mongo.fields import PlainReferenceField from noc.main.models.doccategory import category from noc.lib.text import quote_safe_path -from noc.lib.prettyjson import to_json +from noc.core.prettyjson import to_json from noc.core.defer import call_later from noc.core.model.decorator import on_save from noc.core.bi.decorator import bi_sync diff --git a/sa/models/action.py b/sa/models/action.py index b576c78955..5f2ddbf4ea 100644 --- a/sa/models/action.py +++ b/sa/models/action.py @@ -28,7 +28,7 @@ import cachetools # NOC modules from noc.lib.text import quote_safe_path -from noc.lib.prettyjson import to_json +from noc.core.prettyjson import to_json from noc.core.ip import IP id_lock = threading.Lock() diff --git a/sa/models/actioncommands.py b/sa/models/actioncommands.py index d534ded866..62a8310996 100644 --- a/sa/models/actioncommands.py +++ b/sa/models/actioncommands.py @@ -27,7 +27,7 @@ from mongoengine.fields import ( from noc.core.mongo.fields import PlainReferenceField from .profile import Profile from noc.lib.text import quote_safe_path -from noc.lib.prettyjson import to_json +from noc.core.prettyjson import to_json from .action import Action diff --git a/sa/models/profile.py b/sa/models/profile.py index afe926a425..d9784015c5 100644 --- a/sa/models/profile.py +++ b/sa/models/profile.py @@ -20,7 +20,7 @@ import cachetools # NOC modules from noc.core.bi.decorator import bi_sync -from noc.lib.prettyjson import to_json +from noc.core.prettyjson import to_json from noc.core.model.decorator import on_delete_check from noc.core.profile.loader import loader, GENERIC_PROFILE diff --git a/sa/models/profilecheckrule.py b/sa/models/profilecheckrule.py index 6a89073efe..60c272929a 100644 --- a/sa/models/profilecheckrule.py +++ b/sa/models/profilecheckrule.py @@ -19,7 +19,7 @@ from mongoengine.errors import ValidationError from noc.core.mongo.fields import PlainReferenceField from noc.sa.models.profile import Profile from noc.main.models.doccategory import category -from noc.lib.prettyjson import to_json +from noc.core.prettyjson import to_json from noc.lib.text import quote_safe_path diff --git a/services/web/apps/inv/connectionrule/views.py b/services/web/apps/inv/connectionrule/views.py index daf804b860..90e110a4ff 100644 --- a/services/web/apps/inv/connectionrule/views.py +++ b/services/web/apps/inv/connectionrule/views.py @@ -2,7 +2,7 @@ # --------------------------------------------------------------------- # inv.connectionrule application # --------------------------------------------------------------------- -# Copyright (C) 2007-2013 The NOC Project +# Copyright (C) 2007-2019 The NOC Project # See LICENSE for details # --------------------------------------------------------------------- @@ -10,7 +10,7 @@ from noc.lib.app.extdocapplication import ExtDocApplication, view from noc.inv.models.connectionrule import ConnectionRule from noc.sa.interfaces.base import ListOfParameter, DocumentParameter -from noc.lib.prettyjson import to_json +from noc.core.prettyjson import to_json from noc.core.translation import ugettext as _ diff --git a/services/web/apps/inv/objectmodel/views.py b/services/web/apps/inv/objectmodel/views.py index aebc77b4a5..556c3d7605 100644 --- a/services/web/apps/inv/objectmodel/views.py +++ b/services/web/apps/inv/objectmodel/views.py @@ -2,7 +2,7 @@ # --------------------------------------------------------------------- # inv.objectmodel application # --------------------------------------------------------------------- -# Copyright (C) 2007-2015 The NOC Project +# Copyright (C) 2007-2019 The NOC Project # See LICENSE for details # --------------------------------------------------------------------- @@ -12,7 +12,7 @@ from noc.main.models.doccategory import DocCategory from noc.inv.models.objectmodel import ObjectModel from noc.inv.models.modelinterface import ModelInterface from noc.sa.interfaces.base import ListOfParameter, DocumentParameter -from noc.lib.prettyjson import to_json +from noc.core.prettyjson import to_json from noc.core.translation import ugettext as _ diff --git a/tests/test_prettyjson.py b/tests/test_prettyjson.py new file mode 100644 index 0000000000..38e846252c --- /dev/null +++ b/tests/test_prettyjson.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# ---------------------------------------------------------------------- +# noc.core.prettyjson unittests +# ---------------------------------------------------------------------- +# Copyright (C) 2007-2019 The NOC Project +# See LICENSE for details +# ---------------------------------------------------------------------- + +# Third-party modules +import pytest + +# NOC modules +from noc.core.prettyjson import to_json + + +@pytest.mark.parametrize( + "config, expected", + [ + ("\n", True), + ], +) +def test_prettyjson(config, expected): + json_string = {"key1": "value1", "key2": "value2", "key3": "value3"} + prettyjson = to_json(json_string) + assert prettyjson.endswith(config) == expected -- GitLab From f5a1e263a24d6158e2c06a74c30acded22314a48 Mon Sep 17 00:00:00 2001 From: kk Date: Mon, 9 Sep 2019 16:53:42 +0300 Subject: [PATCH 2/4] move lib/prettyjson to core/prettyjson. black --- tests/test_prettyjson.py | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/tests/test_prettyjson.py b/tests/test_prettyjson.py index 38e846252c..3803146bd6 100644 --- a/tests/test_prettyjson.py +++ b/tests/test_prettyjson.py @@ -13,12 +13,7 @@ import pytest from noc.core.prettyjson import to_json -@pytest.mark.parametrize( - "config, expected", - [ - ("\n", True), - ], -) +@pytest.mark.parametrize("config, expected", [("\n", True)]) def test_prettyjson(config, expected): json_string = {"key1": "value1", "key2": "value2", "key3": "value3"} prettyjson = to_json(json_string) -- GitLab From b5b386b5834c6c0a6e64f2119c691704b94cd973 Mon Sep 17 00:00:00 2001 From: kk Date: Wed, 11 Sep 2019 17:35:06 +0300 Subject: [PATCH 3/4] move lib/prettyjson to core/prettyjson. fix test --- tests/test_prettyjson.py | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/tests/test_prettyjson.py b/tests/test_prettyjson.py index 3803146bd6..ea1ff2b28d 100644 --- a/tests/test_prettyjson.py +++ b/tests/test_prettyjson.py @@ -13,8 +13,23 @@ import pytest from noc.core.prettyjson import to_json -@pytest.mark.parametrize("config, expected", [("\n", True)]) +@pytest.mark.parametrize( + "config, expected", + [ + ({"key1": "value1", "key2": "value2", "key3": "value3"}, True), + (["key1" "value1" "key2" "value2" "key3" "value3"], False), + ] +) def test_prettyjson(config, expected): - json_string = {"key1": "value1", "key2": "value2", "key3": "value3"} - prettyjson = to_json(json_string) - assert prettyjson.endswith(config) == expected + assert to_json(config).startswith("{\n") == expected + + +@pytest.mark.parametrize( + "config, expected", + [ + (("key1", "value1", "key2", "value2", "key3", "value3"), True), + ], +) +def test_prettyjson_error(config, expected): + with pytest.raises(TypeError): + assert to_json(config).startswith("{\n") == expected -- GitLab From 4314e6287945c667501ad3362184988c9c6109b9 Mon Sep 17 00:00:00 2001 From: kk Date: Wed, 11 Sep 2019 17:43:30 +0300 Subject: [PATCH 4/4] move lib/prettyjson to core/prettyjson. black2 --- tests/test_prettyjson.py | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/tests/test_prettyjson.py b/tests/test_prettyjson.py index ea1ff2b28d..cf354c268c 100644 --- a/tests/test_prettyjson.py +++ b/tests/test_prettyjson.py @@ -18,17 +18,14 @@ from noc.core.prettyjson import to_json [ ({"key1": "value1", "key2": "value2", "key3": "value3"}, True), (["key1" "value1" "key2" "value2" "key3" "value3"], False), - ] + ], ) def test_prettyjson(config, expected): assert to_json(config).startswith("{\n") == expected @pytest.mark.parametrize( - "config, expected", - [ - (("key1", "value1", "key2", "value2", "key3", "value3"), True), - ], + "config, expected", [(("key1", "value1", "key2", "value2", "key3", "value3"), True)] ) def test_prettyjson_error(config, expected): with pytest.raises(TypeError): -- GitLab