Esempio n. 1
0
	def test_sticky(self):
		s = struct.Set()
		# create sticky contianer on two stores
		with s.create("foo", [self.store1, self.store2]) as dummy:
			# create document on first store
			with Connector().create("test.format.foo", "test.ignore", [self.store1]) as w:
				w.commit()
				doc = w.getDoc()
				rev = w.getRev()

				watch1 = self.watchDoc(doc, connector.Watch.EVENT_REPLICATED)
				watch2 = self.watchRev(rev, connector.Watch.EVENT_REPLICATED)

				# add to sticky container
				s['dummy'] = struct.DocLink(doc)
				s.save()

			# wait for sticky replicatin to happen
			self.assertTrue(watch1.waitForWatch())
			self.assertTrue(watch2.waitForWatch())

			# check doc (with rev) to exist on all stores
			l = Connector().lookup_doc(doc)
			self.assertEqual(l.revs(), [rev])
			self.assertEqual(len(l.stores(rev)), 2)
			self.assertTrue(self.store1 in l.stores(rev))
			self.assertTrue(self.store2 in l.stores(rev))

			l = Connector().lookup_rev(rev)
			self.assertEqual(len(l), 2)
			self.assertTrue(self.store1 in l)
			self.assertTrue(self.store2 in l)
Esempio n. 2
0
    def test_sticky(self):
        s = struct.Set()
        # create sticky contianer on two stores
        with s.create("foo", [self.store1, self.store2]) as dummy:
            # create document on first store
            with Connector().create("test.format.foo", "test.ignore",
                                    [self.store1]) as w:
                w.commit()
                doc = w.getDoc()
                rev = w.getRev()

                watch1 = self.watchDoc(doc, connector.Watch.EVENT_REPLICATED)
                watch2 = self.watchRev(rev, connector.Watch.EVENT_REPLICATED)

                # add to sticky container
                s['dummy'] = struct.DocLink(doc)
                s.save()

            # wait for sticky replicatin to happen
            self.assertTrue(watch1.waitForWatch())
            self.assertTrue(watch2.waitForWatch())

            # check doc (with rev) to exist on all stores
            l = Connector().lookup_doc(doc)
            self.assertEqual(l.revs(), [rev])
            self.assertEqual(len(l.stores(rev)), 2)
            self.assertTrue(self.store1 in l.stores(rev))
            self.assertTrue(self.store2 in l.stores(rev))

            l = Connector().lookup_rev(rev)
            self.assertEqual(len(l), 2)
            self.assertTrue(self.store1 in l)
            self.assertTrue(self.store2 in l)
Esempio n. 3
0
	def performSync(self, doc, strategy):
		watch = self.watchDoc(doc, connector.Watch.EVENT_MODIFIED)

		self.startSync(strategy, self.store1, self.store2)

		while True:
			watch.reset()
			self.assertTrue(watch.waitForWatch())
			l = Connector().lookup_doc(doc)
			if len(l.revs()) == 1:
				break

		self.assertEqual(len(l.stores()), 2)
		self.assertTrue(self.store1 in l.stores())
		self.assertTrue(self.store2 in l.stores())
		return l
Esempio n. 4
0
    def performSync(self, doc, strategy):
        watch = self.watchDoc(doc, connector.Watch.EVENT_MODIFIED)

        self.startSync(strategy, self.store1, self.store2)

        while True:
            watch.reset()
            self.assertTrue(watch.waitForWatch())
            l = Connector().lookup_doc(doc)
            if len(l.revs()) == 1:
                break

        self.assertEqual(len(l.stores()), 2)
        self.assertTrue(self.store1 in l.stores())
        self.assertTrue(self.store2 in l.stores())
        return l
Esempio n. 5
0
    def __init__(self, uuid, isDoc, parent=None):
        super(PropertiesDialog, self).__init__(parent)

        mainLayout = QtGui.QVBoxLayout()
        mainLayout.setSizeConstraint(QtGui.QLayout.SetFixedSize)

        if isDoc:
            self.doc = uuid
            info = Connector().lookup_doc(uuid)
            mainLayout.addWidget(DocumentTab(info.stores(), "document"))
            self.revs = info.revs()
        else:
            self.doc = None
            mainLayout.addWidget(
                DocumentTab(Connector().lookup_rev(uuid), "revision"))
            self.revs = [uuid]

        if len(self.revs) == 0:
            QtGui.QMessageBox.warning(
                self, 'Missing document',
                'The requested document was not found on any store.')
            sys.exit(1)

        tabWidget = QtGui.QTabWidget()
        self.annoTab = AnnotationTab(self.revs, isDoc
                                     and (len(self.revs) == 1))
        QtCore.QObject.connect(self.annoTab, QtCore.SIGNAL("changed()"),
                               self.__changed)
        tabWidget.addTab(self.annoTab, "Annotation")
        tabWidget.addTab(HistoryTab(self.revs), "History")
        if isDoc:
            tabWidget.addTab(RevisionTab(self.revs), "Revisions")
        else:
            tabWidget.addTab(RevisionTab(self.revs), "Revision")
        mainLayout.addWidget(tabWidget)

        if isDoc and (len(self.revs) == 1):
            self.buttonBox = QtGui.QDialogButtonBox(
                QtGui.QDialogButtonBox.Save | QtGui.QDialogButtonBox.Close)
            self.buttonBox.button(
                QtGui.QDialogButtonBox.Save).setEnabled(False)
            self.buttonBox.accepted.connect(self.__save)
            self.buttonBox.rejected.connect(self.reject)
        else:
            self.buttonBox = QtGui.QDialogButtonBox(QtGui.QDialogButtonBox.Ok)
            self.buttonBox.accepted.connect(self.accept)
        mainLayout.addWidget(self.buttonBox)
        self.setLayout(mainLayout)
        self.setWindowTitle("Properties of %s" % (self.annoTab.getTitle()))
Esempio n. 6
0
    def __init__(self, uuid, isDoc, parent=None):
        super(PropertiesDialog, self).__init__(parent)

        mainLayout = QtGui.QVBoxLayout()
        mainLayout.setSizeConstraint(QtGui.QLayout.SetFixedSize)

        if isDoc:
            self.doc = uuid
            info = Connector().lookup_doc(uuid)
            mainLayout.addWidget(DocumentTab(info.stores(), "document"))
            self.revs = info.revs()
        else:
            self.doc = None
            mainLayout.addWidget(DocumentTab(Connector().lookup_rev(uuid), "revision"))
            self.revs = [uuid]

        if len(self.revs) == 0:
            QtGui.QMessageBox.warning(self, "Missing document", "The requested document was not found on any store.")
            sys.exit(1)

        tabWidget = QtGui.QTabWidget()
        self.annoTab = AnnotationTab(self.revs, isDoc and (len(self.revs) == 1))
        QtCore.QObject.connect(self.annoTab, QtCore.SIGNAL("changed()"), self.__changed)
        tabWidget.addTab(self.annoTab, "Annotation")
        tabWidget.addTab(HistoryTab(self.revs), "History")
        if isDoc:
            tabWidget.addTab(RevisionTab(self.revs), "Revisions")
        else:
            tabWidget.addTab(RevisionTab(self.revs), "Revision")
        mainLayout.addWidget(tabWidget)

        if isDoc and (len(self.revs) == 1):
            self.buttonBox = QtGui.QDialogButtonBox(QtGui.QDialogButtonBox.Save | QtGui.QDialogButtonBox.Close)
            self.buttonBox.button(QtGui.QDialogButtonBox.Save).setEnabled(False)
            self.buttonBox.accepted.connect(self.__save)
            self.buttonBox.rejected.connect(self.reject)
        else:
            self.buttonBox = QtGui.QDialogButtonBox(QtGui.QDialogButtonBox.Ok)
            self.buttonBox.accepted.connect(self.accept)
        mainLayout.addWidget(self.buttonBox)
        self.setLayout(mainLayout)
        self.setWindowTitle("Properties of %s" % (self.annoTab.getTitle()))