Example #1
0
    def update(self):
        """Update content."""

        collection = self._storage.search(
            scat=Config.search_cat_kws,
            sall=Config.search_all_kws,
            stag=Config.search_tag_kws,
            sgrp=Config.search_grp_kws,
            search_filter=Config.search_filter,
            uuid=Config.operation_uuid,
            digest=Config.operation_digest,
            identity=Config.operation_identity,
            data=Config.content_data
        )
        if len(collection) == 1:
            stored = next(collection.resources())
            digest = stored.digest
            updates = Config.get_resource(stored)
            if updates and updates != stored:
                self._logger.debug('updating stored: %s :with digest: %.16s', self._category, digest)
                stored.migrate(updates)
                self.collection = self._storage.update(digest, stored)
            else:
                self._logger.debug('content: %s :with digest: %.16s :was not updated', self._category, digest)
        else:
            Config.validate_search_context(collection, 'update')
Example #2
0
    def test_config_create_001(mock_utcnow):
        """Create new snippet.

        Test default values when only mandatory arguments are used.
        """

        mock_utcnow.return_value = '2018-02-17 13:23:43'

        Config.init(None)
        Config.load(Cli(['snippy', 'import']))
        assert isinstance(Config.content_category, Const.TEXT_TYPE)
        assert isinstance(Config.content_data, tuple)
        assert isinstance(Config.content_brief, Const.TEXT_TYPE)
        assert isinstance(Config.content_description, Const.TEXT_TYPE)
        assert isinstance(Config.content_groups, tuple)
        assert isinstance(Config.content_tags, tuple)
        assert isinstance(Config.content_links, tuple)
        assert isinstance(Config.content_name, Const.TEXT_TYPE)
        assert isinstance(Config.content_filename, Const.TEXT_TYPE)
        assert isinstance(Config.content_versions, tuple)
        assert isinstance(Config.content_source, Const.TEXT_TYPE)
        assert isinstance(Config.operation_digest, type(None))
        assert isinstance(Config.search_cat_kws, tuple)
        assert isinstance(Config.search_all_kws, tuple)
        assert isinstance(Config.search_tag_kws, tuple)
        assert isinstance(Config.search_grp_kws, tuple)
        assert Config.search_filter is None
        assert Config.search_limit == 99
        assert Config.search_offset == 0
        assert Config.remove_fields == ()
        assert Config.sort_fields == OrderedDict([('brief', 'ASC')])
        assert isinstance(Config.get_operation_file(), Const.TEXT_TYPE)
        assert not Config.get_resource(None)
        assert not Config.get_collection()
        assert not Config.is_operation_create
        assert not Config.is_operation_search
        assert not Config.is_operation_update
        assert not Config.is_operation_delete
        assert not Config.is_operation_export
        assert Config.is_operation_import
        assert Config.is_category_snippet
        assert not Config.is_category_solution
        assert not Config.is_category_reference
        assert not Config.is_multi_category
        assert Config.content_category == Const.SNIPPET
        assert not Config.content_data
        assert not Config.content_brief
        assert Config.content_groups == Const.DEFAULT_GROUPS
        assert not Config.content_tags
        assert not Config.content_links
        assert not Config.search_all_kws
        assert not Config.search_tag_kws
        assert not Config.search_grp_kws
        assert Config.operation_digest is None
        assert not Config.search_filter
        assert not Config.content_filename
        assert not Config.editor
        assert Config.get_operation_file() == './snippets.mkdn'
        assert Config.is_operation_file_mkdn
        assert not Config.is_operation_file_json
        assert not Config.is_operation_file_yaml
        assert not Config.is_operation_file_text
        assert Config.use_ansi