def test_clone_repeaters(self): from corehq.motech.repeaters.models import Repeater from corehq.motech.repeaters.models import CaseRepeater from corehq.motech.repeaters.models import FormRepeater self.assertEqual(0, len(Repeater.by_domain(self.new_domain))) case_repeater = CaseRepeater( domain=self.old_domain, url='case-repeater-url', ) case_repeater.save() self.addCleanup(case_repeater.delete) form_repeater = FormRepeater( domain=self.old_domain, url='form-repeater-url', ) form_repeater.save() self.addCleanup(form_repeater.delete) self.make_clone(include=['repeaters']) cloned_repeaters = Repeater.by_domain(self.new_domain) self.assertEqual(2, len(cloned_repeaters)) self.assertEqual({'CaseRepeater', 'FormRepeater'}, {repeater.doc_type for repeater in cloned_repeaters})
def test_clone_repeaters(self): from corehq.motech.repeaters.models import Repeater from corehq.motech.repeaters.models import CaseRepeater from corehq.motech.repeaters.models import FormRepeater from custom.enikshay.integrations.nikshay.repeaters import NikshayRegisterPatientRepeater self.assertEqual(0, len(Repeater.by_domain(self.new_domain))) self.assertEqual( 0, len(NikshayRegisterPatientRepeater.by_domain(self.new_domain))) case_repeater = CaseRepeater( domain=self.old_domain, url='case-repeater-url', ) case_repeater.save() self.addCleanup(case_repeater.delete) form_repeater = FormRepeater( domain=self.old_domain, url='form-repeater-url', ) form_repeater.save() self.addCleanup(form_repeater.delete) custom_repeater = NikshayRegisterPatientRepeater( domain=self.old_domain, url='99dots') custom_repeater.save() self.addCleanup(custom_repeater.delete) self.make_clone(include=['repeaters']) cloned_repeaters = Repeater.by_domain(self.new_domain) self.assertEqual(3, len(cloned_repeaters)) self.assertEqual( {'CaseRepeater', 'FormRepeater', 'NikshayRegisterPatientRepeater'}, {repeater.doc_type for repeater in cloned_repeaters}) # test cache clearing cloned_niksay_repeaters = NikshayRegisterPatientRepeater.by_domain( self.new_domain) self.assertEqual(1, len(cloned_niksay_repeaters))
def used_by(self): """ Returns the names of kinds of things that are currently using this instance. Used for informing users, and determining whether the instance can be deleted. """ from corehq.motech.repeaters.models import Repeater kinds = set() if self.incrementalexport_set.exists(): kinds.add(_('Incremental Exports')) if self.sqldatasetmap_set.exists(): kinds.add(_('DHIS2 DataSet Maps')) if any(r.connection_settings_id == self.id for r in Repeater.by_domain(self.domain)): kinds.add(_('Data Forwarding')) # TODO: Check OpenmrsImporters (when OpenmrsImporters use ConnectionSettings) return kinds
def obj_get_list(self, bundle, domain, **kwargs): repeaters = Repeater.by_domain(domain) return list(repeaters)
def num_repeaters(domain): return len(Repeater.by_domain(domain))