Notifications regression: Notifications not created

Notifications for when someone posted a comment on your node
was not created.

Root cause was that default values defined in schema was not set,
resulting in activity subscriptions not being active.
There were 2 bugs preventing them to be set:
* The way the caching of markdown as html was implemented caused
  default values not to be set.
* Eve/Cerberus regression causes nested default values to fail
  https://github.com/pyeve/eve/issues/1174

Also, a 3rd bug caused nodes without a parent not to have a
subscription.

Migration scripts:
How markdown fields is cached has changed, and unused properties
of attachments has been removed.
./manage.py maintenance replace_pillar_node_type_schemas

Set the default values of activities-subscription
./manage.py maintenance fix_missing_activities_subscription_defaults
This commit is contained in:
2019-02-19 14:16:28 +01:00
parent fccf6eb7a6
commit d1713f93b3

View File

@@ -2,10 +2,10 @@
"""Unit test for SVN interface.""" """Unit test for SVN interface."""
import collections
import datetime import datetime
import logging.config import logging.config
import unittest import unittest
from time import sleep
from bson import ObjectId from bson import ObjectId
from dateutil.tz import tzutc from dateutil.tz import tzutc
@@ -391,6 +391,12 @@ class SvnTaskLoggedTest(AbstractAttractTest):
with self.app.test_request_context(): with self.app.test_request_context():
_, token = cli.create_svner_account('svner@example.com', self.project['url']) _, token = cli.create_svner_account('svner@example.com', self.project['url'])
# !! UGLY !!
# The '_created' timestamp resolution is to low. Therefor both created and commit activity can get the same
# created timestamp, and then the ordering of activities is non-deterministic.
# So lets slow things down a little.
sleep(0.001)
# Do the push # Do the push
msg = '¡is a tie! commit to task [%s]' % shortcode msg = '¡is a tie! commit to task [%s]' % shortcode
self.post('/attract/api/%s/subversion/log' % self.project['url'], self.post('/attract/api/%s/subversion/log' % self.project['url'],