Skip to content

Commit

Permalink
Merge pull request #2455 from SFDO-Tooling/feature/vmarasow/permset-l…
Browse files Browse the repository at this point in the history
…ist-preflight

[W-8998476] Add preflight task to retrieve available permissions sets
  • Loading branch information
David Glick committed Mar 16, 2021
2 parents 1721940 + da7e53d commit 77d5c46
Show file tree
Hide file tree
Showing 4 changed files with 86 additions and 51 deletions.
102 changes: 51 additions & 51 deletions .github/workflows/feature_test.yml
Expand Up @@ -243,57 +243,57 @@ jobs:
name: robot
path: robot/CumulusCI/results

robot_ui_prerelease:
name: "Robot: Spring '21"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python 3.8
uses: actions/setup-python@v2
with:
python-version: 3.8
- name: pip cache
uses: actions/cache@v1
with:
path: ~\AppData\Local\pip\Cache
key: ${{ runner.os }}-pip-${{ hashFiles('requirements*.txt') }}
restore-keys: |
${{ runner.os }}-pip-
- name: Install Python dependencies
run: |
python -m pip install -U pip
pip install -r requirements_dev.txt
- name: Install sfdx
run: |
mkdir sfdx
wget -qO- https://developer.salesforce.com/media/salesforce-cli/sfdx-linux-amd64.tar.xz | tar xJ -C sfdx --strip-components 1
./sfdx/install
sfdx plugins --core
echo $SFDX_HUB_KEY_BASE64 | base64 --decode > sfdx.key
sfdx auth:jwt:grant --clientid $SFDX_CLIENT_ID --jwtkeyfile sfdx.key --username $SFDX_HUB_USERNAME --setdefaultdevhubusername -a hub
env:
SFDX_HUB_KEY_BASE64: ${{ secrets.SFDX_HUB_KEY_BASE64 }}
SFDX_CLIENT_ID: ${{ secrets.SFDX_CLIENT_ID }}
SFDX_HUB_USERNAME: ${{ secrets.SFDX_HUB_USERNAME }}
- name: Run robot tests
run: |
coverage run --append $(which cci) task run robot \
--org prerelease \
-o suites cumulusci/robotframework/tests/salesforce \
-o exclude no-browser \
-o vars BROWSER:headlesschrome
- name: Delete scratch org
if: always()
run: |
cci org scratch_delete prerelease
- name: Report coverage
run: coveralls
- name: Store robot results
if: failure()
uses: actions/upload-artifact@v1
with:
name: robot
path: robot/CumulusCI/results
# robot_ui_prerelease:
# name: "Robot: Spring '21"
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v2
# - name: Set up Python 3.8
# uses: actions/setup-python@v2
# with:
# python-version: 3.8
# - name: pip cache
# uses: actions/cache@v1
# with:
# path: ~\AppData\Local\pip\Cache
# key: ${{ runner.os }}-pip-${{ hashFiles('requirements*.txt') }}
# restore-keys: |
# ${{ runner.os }}-pip-
# - name: Install Python dependencies
# run: |
# python -m pip install -U pip
# pip install -r requirements_dev.txt
# - name: Install sfdx
# run: |
# mkdir sfdx
# wget -qO- https://developer.salesforce.com/media/salesforce-cli/sfdx-linux-amd64.tar.xz | tar xJ -C sfdx --strip-components 1
# ./sfdx/install
# sfdx plugins --core
# echo $SFDX_HUB_KEY_BASE64 | base64 --decode > sfdx.key
# sfdx auth:jwt:grant --clientid $SFDX_CLIENT_ID --jwtkeyfile sfdx.key --username $SFDX_HUB_USERNAME --setdefaultdevhubusername -a hub
# env:
# SFDX_HUB_KEY_BASE64: ${{ secrets.SFDX_HUB_KEY_BASE64 }}
# SFDX_CLIENT_ID: ${{ secrets.SFDX_CLIENT_ID }}
# SFDX_HUB_USERNAME: ${{ secrets.SFDX_HUB_USERNAME }}
# - name: Run robot tests
# run: |
# coverage run --append $(which cci) task run robot \
# --org prerelease \
# -o suites cumulusci/robotframework/tests/salesforce \
# -o exclude no-browser \
# -o vars BROWSER:headlesschrome
# - name: Delete scratch org
# if: always()
# run: |
# cci org scratch_delete prerelease
# - name: Report coverage
# run: coveralls
# - name: Store robot results
# if: failure()
# uses: actions/upload-artifact@v1
# with:
# name: robot
# path: robot/CumulusCI/results

coveralls_done:
name: Finalize coveralls
Expand Down
4 changes: 4 additions & 0 deletions cumulusci/cumulusci.yml
Expand Up @@ -256,6 +256,10 @@ tasks:
description: Retrieves a list of the names of any permission sets assigned to the running user.
class_path: cumulusci.tasks.preflight.permsets.GetPermissionSetAssignments
group: Salesforce Preflight Checks
get_available_permission_sets:
description: Retrieves a list of the currently available Permission Sets
class_path: cumulusci.tasks.preflight.licenses.GetAvailablePermissionSets
group: Salesforce Preflight Checks
get_existing_record_types:
description: "Retrieves all Record Types in the org as a dict, with sObject names as keys and lists of Developer Names as values."
class_path: cumulusci.tasks.preflight.recordtypes.CheckSObjectRecordTypes
Expand Down
12 changes: 12 additions & 0 deletions cumulusci/tasks/preflight/licenses.py
Expand Up @@ -23,3 +23,15 @@ def _run_task(self):
]
licenses = "\n".join(self.return_values)
self.logger.info(f"Found permission set licenses:\n{licenses}")


class GetAvailablePermissionSets(BaseSalesforceApiTask):
def _run_task(self):
self.return_values = [
result["Name"]
for result in self.sf.query_all("SELECT Name FROM PermissionSet")[
"records"
]
]
permsets = "\n".join(self.return_values)
self.logger.info(f"Found Permission Sets:\n{permsets}")
19 changes: 19 additions & 0 deletions cumulusci/tasks/preflight/tests/test_licenses.py
Expand Up @@ -4,6 +4,7 @@
from cumulusci.tasks.preflight.licenses import (
GetAvailableLicenses,
GetAvailablePermissionSetLicenses,
GetAvailablePermissionSets
)
from cumulusci.tasks.salesforce.tests.util import create_task

Expand Down Expand Up @@ -43,3 +44,21 @@ def test_psl_preflight(self):
"SELECT PermissionSetLicenseKey FROM PermissionSetLicense"
)
assert task.return_values == ["TEST1", "TEST2"]

def test_permsets_preflight(self):
task = create_task(GetAvailablePermissionSets, {})
task._init_api = Mock()

task._init_api.return_value.query_all.return_value = {
"totalSize": 2,
"records": [
{"Name": "TEST1"},
{"Name": "TEST2"},
],
}
task()

task._init_api.return_value.query_all.assert_called_once_with(
"SELECT Name FROM PermissionSet"
)
assert task.return_values == ["TEST1", "TEST2"]

0 comments on commit 77d5c46

Please sign in to comment.