Python: Add ModuleValue.{isUsedAsModule, isUsedAsScript}

and a few test cases
This commit is contained in:
Rasmus Wriedt Larsen
2020-02-13 17:14:20 +01:00
parent b4ab0b55be
commit 3e7e9636ea
8 changed files with 59 additions and 1 deletions

View File

@@ -0,0 +1,5 @@
| file://:0:0:0:0 | Module builtins | isUsedAsModule |
| file://:0:0:0:0 | Module sys | isUsedAsModule |
| imported.py:0:0:0:0 | Module imported | isUsedAsModule |
| main.py:0:0:0:0 | Module main | isUsedAsScript |
| mybin:0:0:0:0 | Script script | isUsedAsScript |

View File

@@ -0,0 +1,12 @@
import python
from ModuleValue mv, string usage
where
mv.isUsedAsModule() and usage = "isUsedAsModule"
or
mv.isUsedAsScript() and usage = "isUsedAsScript"
or
not mv.isUsedAsModule() and
not mv.isUsedAsScript() and
usage = "<UNKNOWN>"
select mv, usage

View File

@@ -0,0 +1,6 @@
def func():
pass
if __name__ == "__main__":
print("I could have done something interesting...")
print("but I didn't")

View File

@@ -0,0 +1,5 @@
import imported
if __name__ == "__main__":
imported.func()
print('Done')

View File

@@ -0,0 +1 @@
semmle-extractor-options: -F script

View File

@@ -0,0 +1,3 @@
#!/usr/bin/env python
print('Under construction :)')