def test_specifying_resources(self):
        """Test the various ways to specify resources in a project."""
        p = Project(init=False)
        resources = [
            'proj1.res1',
            'proj2.res2',
            'transifex.txn',
            'transifex.txo',
        ]
        with patch.object(p, 'get_resource_list') as mock:
            mock.return_value = resources
            cmd_args = [
                'proj1.res1', '*1*', 'transifex*', '*r*',
                '*o', 'transifex.tx?', 'transifex.txn',
            ]
            results = [
                ['proj1.res1', ],
                ['proj1.res1', ],
                ['transifex.txn', 'transifex.txo', ],
                ['proj1.res1', 'proj2.res2', 'transifex.txn', 'transifex.txo', ],  # noqa
                ['transifex.txo', ],
                ['transifex.txn', 'transifex.txo', ],
                ['transifex.txn', ],
                [],
            ]

            for i, arg in enumerate(cmd_args):
                resources = [arg]
                self.assertEqual(p.get_chosen_resources(resources), results[i])

            # wrong argument
            resources = ['*trasnifex*', ]
            self.assertRaises(Exception, p.get_chosen_resources, resources)
    def test_specifying_resources(self):
        """Test the various ways to specify resources in a project."""
        p = Project(init=False)
        resources = [
            'proj1.res1',
            'proj2.res2',
            'transifex.txn',
            'transifex.txo',
        ]
        with patch.object(p, 'get_resource_list') as mock:
            mock.return_value = resources
            cmd_args = [
                'proj1.res1', '*1*', 'transifex*', '*r*',
                '*o', 'transifex.tx?', 'transifex.txn',
            ]
            results = [
                ['proj1.res1', ],
                ['proj1.res1', ],
                ['transifex.txn', 'transifex.txo', ],
                ['proj1.res1', 'proj2.res2', 'transifex.txn', 'transifex.txo', ],
                ['transifex.txo', ],
                ['transifex.txn', 'transifex.txo', ],
                ['transifex.txn', ],
                [],
            ]

            for i, arg in enumerate(cmd_args):
                resources = [arg]
                self.assertEqual(p.get_chosen_resources(resources), results[i])

            # wrong argument
            resources = ['*trasnifex*', ]
            self.assertRaises(Exception, p.get_chosen_resources, resources)
Beispiel #3
0
    def test_specifying_resources(self):
        """Test the various ways to specify resources in a project."""
        p = Project(init=False)
        resources = ["proj1.res1", "proj2.res2", "transifex.txn", "transifex.txo"]
        with patch.object(p, "get_resource_list") as mock:
            mock.return_value = resources
            cmd_args = ["proj1.res1", "*1*", "transifex*", "*r*", "*o", "transifex.tx?", "transifex.txn"]
            results = [
                ["proj1.res1"],
                ["proj1.res1"],
                ["transifex.txn", "transifex.txo"],
                ["proj1.res1", "proj2.res2", "transifex.txn", "transifex.txo"],
                ["transifex.txo"],
                ["transifex.txn", "transifex.txo"],
                ["transifex.txn"],
                [],
            ]

            for i, arg in enumerate(cmd_args):
                resources = [arg]
                self.assertEqual(p.get_chosen_resources(resources), results[i])

            # wrong argument
            resources = ["*trasnifex*"]
            self.assertRaises(Exception, p.get_chosen_resources, resources)

prj = Project(find_dot_tx())

api_auth = prj.getset_host_credentials('https://api.transifex.com')

offset = 0
remote_resources = []
while True:
  r = requests.get('https://api.transifex.com/organizations/{}/projects/{}/resources/?offset={}'.format(organization_slug, project_slug, offset), auth=api_auth)
  results = r.json()
  if len(results) == 0:
    break
  remote_resources.extend(results)
  offset += 100

remote_resources_set = set([res['slug'] for res in remote_resources])

local_resources_set = set([res.split('.')[1] for res in prj.get_chosen_resources([])])

print "remote resources count: {}".format(len(remote_resources_set))
print "local resources count: {}".format(len(local_resources_set))

outdated_resources = remote_resources_set - local_resources_set

for res_slug in outdated_resources:
    print "deleting outdated resource {}".format(res_slug)
    # it seems delete is currently not working on the new api
    # r = requests.delete('https://api.transifex.com/organizations/{}/projects/{}/resources/{}/'.format(organization_slug, project_slug, res_slug), auth=api_auth)
    r = requests.delete('https://www.transifex.com/api/2/project/{}/resource/{}/'.format(project_slug, res_slug), auth=api_auth)
remote_resources = []
while True:
    r = requests.get(
        'https://api.transifex.com/organizations/{}/projects/{}/resources/?offset={}'
        .format(organization_slug, project_slug, offset),
        auth=api_auth)
    results = r.json()
    if len(results) == 0:
        break
    remote_resources.extend(results)
    offset += 100

remote_resources_set = set([res['slug'] for res in remote_resources])

local_resources_set = set(
    [res.split('.')[1] for res in prj.get_chosen_resources([])])

print "remote resources count: {}".format(len(remote_resources_set))
print "local resources count: {}".format(len(local_resources_set))

outdated_resources = remote_resources_set - local_resources_set

for res_slug in outdated_resources:
    print "deleting outdated resource {}".format(res_slug)
    # it seems delete is currently not working on the new api
    # r = requests.delete('https://api.transifex.com/organizations/{}/projects/{}/resources/{}/'.format(organization_slug, project_slug, res_slug), auth=api_auth)
    r = requests.delete(
        'https://www.transifex.com/api/2/project/{}/resource/{}/'.format(
            project_slug, res_slug),
        auth=api_auth)