コード例 #1
0
 def test_update_project(self, mock_request, api_instance=api):
     test_project_model = maproulette.ProjectModel(name='Test Project Name',
                                                   id=1234)
     test_updated_project_model = maproulette.ProjectModel(
         name='Test Updated Project Name')
     test_project_model_id = test_project_model.id
     mock_request.return_value.status_code = '200'
     response = api_instance.update_project(test_project_model_id,
                                            test_updated_project_model)
     self.assertEqual(response['status'], '200')
コード例 #2
0
 def test_update_project(self, mock_request, api_instance=api):
     test_project_model = maproulette.ProjectModel(name='Test Project Name',
                                                   id=1234)
     test_updated_project_name = 'Test Updated Project Name'
     test_updated_project_model = maproulette.ProjectModel(
         name=test_updated_project_name)
     test_project_model_id = test_project_model.id
     api_instance.update_project(test_project_model_id,
                                 test_updated_project_model)
     mock_request.assert_called_once_with(
         f'{self.url}/project/{test_project_model_id}',
         json={'name': test_updated_project_name},
         params=None)
コード例 #3
0
 def test_get_random_tasks(self, mock_request, api_instance=api):
     test_project_model = maproulette.ProjectModel(name='Test Project Name',
                                                   id=1234)
     test_project_id = test_project_model.id
     mock_request.return_value.status_code = '200'
     response = api_instance.get_random_tasks(test_project_id)
     self.assertEqual(response['status'], '200')
コード例 #4
0
 def test_create_project(self, mock_request, api_instance=api):
     test_project_model = maproulette.ProjectModel(
         name='Test_Project_Name', description='This is a test project')
     api_instance.create_project(test_project_model)
     mock_request.assert_called_once_with(f'{self.url}/project',
                                          json=test_project,
                                          params=None)
コード例 #5
0
 def test_delete_project(self, mock_request, api_instance=api):
     test_project_model = maproulette.ProjectModel(name='Test Project Name',
                                                   id=1234)
     test_project_id = test_project_model.id
     api_instance.delete_project(test_project_id)
     mock_request.assert_called_once_with(
         f'{self.url}/project/{test_project_id}', params=None)
コード例 #6
0
 def test_add_challenge_to_project(self, mock_request, api_instance=api):
     test_virtual_project_model = maproulette.ProjectModel(
         name='Test Virtual Project Name', id=1234)
     test_challenge_model = maproulette.ChallengeModel(
         name='Test Challenge Name', id=246)
     test_virtual_project_id = test_virtual_project_model.id
     test_challenge_id = test_challenge_model.id
     mock_request.return_value.status_code = '200'
     response = api_instance.add_challenge_to_project(
         test_virtual_project_id, test_challenge_id)
     self.assertEqual(response['status'], '200')
コード例 #7
0
 def test_get_random_tasks(self, mock_request, api_instance=api):
     test_project_model = maproulette.ProjectModel(name='Test Project Name',
                                                   id=1234)
     test_project_id = test_project_model.id
     api_instance.get_random_tasks(test_project_id)
     mock_request.assert_called_once_with(
         f'{self.url}/project/{test_project_id}/tasks',
         params={
             'limit': '1',
             'proximity': '-1',
             'search': ''
         })
コード例 #8
0
 def test_add_challenge_to_project(self, mock_request, api_instance=api):
     test_virtual_project_model = maproulette.ProjectModel(
         name='Test Virtual Project Name', id=1234)
     test_challenge_model = maproulette.ChallengeModel(
         name='Test Challenge Name', id=246)
     test_virtual_project_id = test_virtual_project_model.id
     test_challenge_id = test_challenge_model.id
     api_instance.add_challenge_to_project(test_virtual_project_id,
                                           test_challenge_id)
     mock_request.assert_called_once_with(
         f'{self.url}/project/{test_virtual_project_id}/challenge/{test_challenge_id}/add',
         json=None,
         params=None)
コード例 #9
0
# Create an API object using your config object
api = maproulette.Project(config)

# We can fetch a project using the name 'Health Facilities in India':
my_project_name = 'Health Facilities in India'

# Print the API response
print(json.dumps(api.find_project(my_project_name), indent=4, sort_keys=True))

# We can also fetch a project using the project ID:
my_project_id = '4719'

# Print the API response
print(
    json.dumps(api.get_project_by_id(my_project_id), indent=4, sort_keys=True))

# We can access the project's challenges as well:
print(
    json.dumps(api.get_project_challenges(my_project_id),
               indent=4,
               sort_keys=True))

# If we want to create a new project, we can use the Project Model:
my_project = maproulette.ProjectModel(name='my_new_project_name_20200120_abc')

# You can set other parameters like your project description like this:
my_project.description = 'my project description'

# Print the API response
print(json.dumps(api.create_project(my_project), indent=4, sort_keys=True))
コード例 #10
0
 def test_create_project(self, mock_request, api_instance=api):
     test_project_model = maproulette.ProjectModel(
         name='Test_Project_Name', description='This is a test project')
     mock_request.return_value.status_code = '200'
     response = api_instance.create_project(test_project_model)
     self.assertEqual(response['status'], '200')
コード例 #11
0
    for line in doc:
        line = line.decode()
        if '|' not in line:
            continue
        category, tags, preset = line.split('|')
        presets[category.strip()] = preset.strip()
        print("For category", category.strip(), "use preset",
              preset[:50].strip())

config = maproulette.Configuration(api_key=os.getenv("MR_API_KEY"))
proj_api = maproulette.Project(config)

proj_name = "Santa Clara County Social distancing protocol import"
try:
    data = proj_api.get_project_by_name(proj_name)["data"]
    proj = maproulette.ProjectModel(name=data["name"], id=data["id"])
    existing = True
    print("Using existing project ID", proj.id)
except maproulette.api.errors.NotFoundError:
    proj = maproulette.ProjectModel(name=proj_name)
    existing = False
    print("Creating new project")

if not existing:
    proj.description = """Importing business facilities based on [social distancing protocols](https://sdp.sccgov.org/) that business owners have filed with the [Santa Clara County Public Health Department](https://en.wikipedia.org/wiki/Santa_Clara_County_Public_Health_Department) under [COVID-19](https://en.wikipedia.org/wiki/COVID-19_pandemic_in_the_San_Francisco_Bay_Area) public health orders. See the [proposal on the OpenStreetMap wiki](https://wiki.openstreetmap.org/wiki/Santa_Clara_County,_California/Social_distancing_protocol_import) for more information."""

    data = proj_api.create_project(proj)["data"]
    proj = maproulette.ProjectModel(name=data["name"], id=data["id"])
    print("Created project ID", proj.id)

challenges = proj_api.get_project_challenges(proj.id,