def test_removing_cname_clears_ssl_status(self, subprocess_mock): with ignore_signal(post_save, pre_save): hosting = G(Hosting, name='test_name_1', domains=['test.a'], ssl_status=Hosting.SSL_STATUSES.ON) url = reverse('v1.1:hosting-detail', args=(self.instance.name, hosting.id)) response = self.client.patch(url, {'domains': ['abc']}) self.assertTrue(response.status_code, status.HTTP_200_OK)
def test_enable_ssl(self, subprocess_mock): with ignore_signal(post_save, pre_save): hosting = G(Hosting, name='test_name_1', domains=['test.a']) url = reverse('v1.1:hosting-enable-ssl', args=(self.instance.name, hosting.id)) self.client.post(url) self.assertEqual(subprocess_mock.call_args[0][0], [ISSUE_SSL_CERT_SCRIPT, hosting.domains[0]])
def _migrate_tenants(self, tenants, apps): for tenant in tenants: db = get_instance_db(tenant) connection = connections[db] set_current_instance(tenant) self._notice("=== Running migrate for schema: %s" % tenant.schema_name) signals.pre_tenant_migrate.send(sender=tenant, tenant=tenant, verbosity=self.verbosity, using=connection.alias) schema_created = self._migrate_schema(connection, tenant) with ignore_signal(post_migrate): self.run_migrations(connection, apps, schema_created=schema_created, skip_checks=True) signals.post_tenant_migrate.send( sender=tenant, tenant=tenant, verbosity=self.verbosity, using=connection.alias, created=schema_created, partial=False, )
def test_locked_hosting_cannot_be_modified(self): with ignore_signal(post_save, pre_save): hosting = G(Hosting, name='test_name_1', domains=['test.a'], ssl_status=Hosting.SSL_STATUSES.CHECKING) url = reverse('v1.1:hosting-enable-ssl', args=(self.instance.name, hosting.id)) response = self.client.post(url) self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) url = reverse('v1.1:hosting-detail', args=(self.instance.name, hosting.id)) response = self.client.patch(url, {'domains': ['abc']}) self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
def test_delete_hosting(self, subprocess_mock): with ignore_signal(post_save, pre_save): self.instance.domains = ['test.a'] self.instance.save() hosting = G(Hosting, name='test_name_1', domains=['test.a']) url = reverse('v1.1:hosting-detail', args=(self.instance.name, hosting.id)) self.client.delete(url) self.instance.refresh_from_db() self.assertEqual(len(self.instance.domains), 0)
def test_calling_refresh_cert_script_with_fresh_domain(self, utime_mock): with ignore_signal(pre_save, post_save): self.instance.domains = [TEST_DOMAIN] self.instance.save() self.hosting.domains = [TEST_DOMAIN] self.hosting.ssl_status = Hosting.SSL_STATUSES.ON self.hosting.save() with mock.patch('os.path.exists', mock.Mock(return_value=True)): with mock.patch('os.listdir', mock.Mock(return_value=[TEST_DOMAIN])): HostingRefreshSecureCustomDomainCertTask.delay() set_current_instance(self.instance) utime_mock.assert_called_once()
def test_calling_refresh_cert_script(self, subprocess_mock): with ignore_signal(pre_save, post_save): self.instance.domains = [TEST_DOMAIN] self.instance.save() self.hosting.domains = [TEST_DOMAIN] self.hosting.ssl_status = Hosting.SSL_STATUSES.ON self.hosting.save() with mock.patch('os.path.exists', mock.Mock(return_value=True)): with mock.patch( 'os.listdir', mock.Mock( return_value=['.last_update', 'pem', TEST_DOMAIN])): HostingRefreshSecureCustomDomainCertTask.delay() self.assertEqual(subprocess_mock.call_args[0][0], [RENEW_SSL_CERT_SCRIPT, TEST_DOMAIN]) set_current_instance(self.instance) self.hosting.refresh_from_db() self.assertEqual(self.hosting.ssl_status, Hosting.SSL_STATUSES.ON)
def test_queueing_mechanism(self): with ignore_signal(post_save): socket1 = G(Socket, name='name1') socket2 = G(Socket, name='name2') socket1.refresh_from_db() socket2.refresh_from_db() self.assertEqual(socket1.status, Socket.STATUSES.PROCESSING) self.assertEqual(socket2.status, Socket.STATUSES.PROCESSING) with mock.patch( 'apps.sockets.download_utils.ZipDownloadFileHandler.get_socket_spec' ) as download_mock: download_mock.return_value = "aa: bb" # Both sockets should be processed one after another SocketProcessorTask.delay(instance_pk=self.instance.pk) socket1.refresh_from_db() socket2.refresh_from_db() self.assertEqual(socket1.status, Socket.STATUSES.OK) self.assertEqual(socket2.status, Socket.STATUSES.OK)
def update_object(self, obj): with ignore_signal(post_save, pre_save): obj.save()